https://github.com/royroki/notetaker
NoteTaker - A simple Go-based backend demonstration for beginners, following Clean Architecture principles.ckend demonstration for beginners, following Clean Architecture principles.
https://github.com/royroki/notetaker
api backend beginner-project clean-architecture go-backend golang
Last synced: 5 months ago
JSON representation
NoteTaker - A simple Go-based backend demonstration for beginners, following Clean Architecture principles.ckend demonstration for beginners, following Clean Architecture principles.
- Host: GitHub
- URL: https://github.com/royroki/notetaker
- Owner: RoyRoki
- Created: 2025-03-05T13:34:07.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-04T20:20:46.000Z (about 1 year ago)
- Last Synced: 2025-06-12T13:07:22.556Z (about 1 year ago)
- Topics: api, backend, beginner-project, clean-architecture, go-backend, golang
- Language: Go
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ NoteTaker




A simple and modular ๐งฑ **Go-based Note Taking API** built with:
- ๐ **Clean Architecture**
- ๐ก **SOLID Principles**
- ๐งช **Testable structure**
- ๐๏ธ SQLite (can be easily swapped)
- โ๏ธ Dependency Injection for better maintainability
- ๐ Simple REST API
---
## ๐ฝ๏ธ Demo
Check out a quick walkthrough of the project setup and code structure:
[](https://youtu.be/C6deIp21r5E?si=LDtkRswd7m7gnUbH)
---
## ๐ฆ Project Structure
```bash
.
โโโ cmd # App entrypoint
โ โโโ server # Main server file
โโโ commons # Shared utilities (config, logging, DB, etc.)
โโโ modules
โ โโโ notes
โ โโโ data # Data layer (models, datasource, impls)
โ โโโ domain # Domain layer (interfaces, usecases)
โ โโโ di # Dependency injection
โ โโโ presentation # HTTP controllers and routers
โโโ test.html # Quick test UI (excluded from stats)
โโโ notes.db # SQLite database file
โโโ README.md # You're here!
```
---
## ๐ง Key Concepts
### ๐งผ Clean Architecture
- Separated concerns across data, domain, and presentation
- Easily testable and scalable
### ๐งฑ SOLID Principles
- Each layer has a single responsibility
- Interfaces are implemented explicitly
- High-level code is decoupled from low-level details
---
## ๐ Getting Started
### 1. Clone the repo
```bash
git clone https://github.com/RoyRoki/NoteTaker.git && cd NoteTaker
```
### 2. Run the server
```bash
go run cmd/server/main.go
```
### 3. Access the API
```bash
GET /notes
POST /notes
PUT /notes/:id
DELETE /notes/:id
```
You can use `test.html` locally to quickly test endpoints.
---
## ๐ ๏ธ Tech Stack
- Go ๐น
- SQLite ๐ข๏ธ
- chi router ๐งญ
- sqlx (optionally pluggable)
---
## ๐ค Contributions
PRs and stars are welcome! โญ If you're interested in Clean Architecture or Go backend design, this project is a great starting point!
---
## ๐ License
ROCKET ยฉ [RoyRoki](https://github.com/RoyRoki)