Skip to content

NoteTaker - A simple Go-based backend demonstration for beginners, following Clean Architecture principles.ckend demonstration for beginners, following Clean Architecture principles.

Notifications You must be signed in to change notification settings

RoyRoki/NoteTaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 NoteTaker

Go Clean Architecture SOLID License

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:

NoteTaker Demo


📦 Project Structure

.
├── 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

git clone https://github.com/RoyRoki/NoteTaker.git && cd NoteTaker

2. Run the server

go run cmd/server/main.go

3. Access the API

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

About

NoteTaker - A simple Go-based backend demonstration for beginners, following Clean Architecture principles.ckend demonstration for beginners, following Clean Architecture principles.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published