Skip to content

Mostafa-SAID7/NoteBook-MVC

Repository files navigation

NoteBook

A production-grade note-taking application with clean architecture, PostgreSQL, and Dapper.

Status: ✅ Production-Ready | Version: 2.1.0 | Framework: ASP.NET Core 9 | Phase: 5 (Rate Limiting Recommended)

🚀 Quick Start

Docker (Recommended)

# Using pre-built image from Docker Hub
docker pull msaid356/notebook:latest
docker-compose up -d
# API: http://localhost:5000

# Or build from source
git clone https://github.com/yourusername/NoteBook.git
cd NoteBook
docker-compose -f docker-compose.build.yml up -d

Local Development

git clone https://github.com/yourusername/NoteBook.git
cd NoteBook
dotnet restore
dotnet build
cd NoteBook.Web && dotnet run
# API: http://localhost:5000

See SETUP.md for detailed setup instructions.

📚 Documentation

Document Purpose
SETUP.md Complete installation & Docker guide
docs/API.md API endpoints & examples
docs/ARCHITECTURE.md Code structure & patterns
docs/DEVELOPMENT.md Development workflow
docs/DEPLOYMENT.md Production deployment
docs/CONTRIBUTING.md Contribution guidelines
docs/TROUBLESHOOTING.md Common issues & fixes
docs/INDEX.md Complete documentation index

✨ Features

Phase 1-4 (Complete)

  • ✅ Create, read, update, delete notes (with soft delete)
  • ✅ Archive & restore notes
  • ✅ Full-text search (title, content, tags)
  • ✅ Tag-based categorization
  • ✅ Pagination support
  • ✅ RESTful API
  • ✅ JWT authentication
  • ✅ Input validation (FluentValidation)
  • ✅ Unit testing (xUnit)
  • ✅ Health checks (/api/health)

Phase 5 (Recommended)

Phase 6+ (Optional)

  • ⏳ Redis caching (performance)
  • 🎯 User collaboration (sharing, comments)
  • 🎯 File attachments
  • 🎯 Activity logging

🛠 Tech Stack

  • Backend: ASP.NET Core 9.0
  • Database: PostgreSQL 16
  • Data Access: Dapper + Npgsql
  • Architecture: Clean Architecture + CQRS
  • Orchestration: MediatR
  • Logging: Serilog
  • Containerization: Docker
  • Registry: Docker Hub (msaid356/notebook)

📊 Project Structure

NoteBook/
├── NoteBook.Domain/              # Core business logic
├── NoteBook.Application/         # CQRS & services
├── NoteBook.Infrastructure/      # Data access
├── NoteBook.Web/                 # API controllers
├── db/                           # Database schemas & migrations
├── docs/                         # Documentation
├── Dockerfile                    # Container image
└── docker-compose.yml            # Local dev stack

🔌 API Endpoints

GET    /api/notes                 # Get all notes
GET    /api/notes/{id}            # Get single note
POST   /api/notes                 # Create note
PUT    /api/notes/{id}            # Update note
DELETE /api/notes/{id}            # Delete note
GET    /api/notes/search?term=... # Search notes

Full documentation: docs/API.md

🤝 Contributing

  1. Read docs/CONTRIBUTING.md
  2. Follow coding standards in docs/DEVELOPMENT.md
  3. Create feature branch: git checkout -b feature/your-feature
  4. Commit with conventional messages: git commit -m "feat(scope): description"
  5. Push and submit PR

📋 Requirements

  • .NET 9 SDK
  • PostgreSQL 16 (or Docker)
  • Docker & Docker Compose (optional, but recommended)

🆘 Issues & Support

📄 License

MIT License - See LICENSE

🙏 Acknowledgments


Start here → | API Docs → | Setup Guide →

About

A production-grade note-taking application with clean architecture, PostgreSQL, and Dapper.

Topics

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors