A full-stack notes application with user authentication, public/private notes, and sorting algorithm performance analysis.
- User Authentication: JWT-based login/register
- Notes Management: Create, read, update, delete notes
- Public/Private Notes: Notes can be public or private
- Markdown Support: Write notes in Markdown
- Tags: Organize notes with tags
- Comments: Add comments to notes
- Sorting Algorithms: Compare Merge Sort, Quick Sort, Bubble Sort, and MongoDB Native
- Performance Metrics: View execution time and complexity
- Backend: NestJS, MongoDB (Mongoose)
- Frontend: Next.js 16, React Query
- Database: MongoDB
- Node.js 18+
- MongoDB (local or Atlas)
cd apps/backend
npm install
# Create .env file
echo "MONGODB_URI=mongodb://localhost:27017/notes-db
JWT_SECRET=your-secret-key-change-in-production
CORS_ORIGIN=http://localhost:3001" > .env
# Start development server
npm run start:devBackend runs on http://localhost:5000
cd apps/frontend
npm install
# Start development server
npm run devFrontend runs on http://localhost:3001
- Register a new user at
/register - Login at
/login - Create notes at
/notes/new - Toggle
isPublicto make notes visible to others - View all notes at
/notes - Check statistics at
/stats
Swagger docs available at http://localhost:5000/api/docs
apps/
├── backend/ # NestJS API
│ └── src/
│ ├── auth/ # JWT auth
│ ├── notes/ # Notes CRUD
│ └── entities/
└── frontend/ # Next.js UI
└── app/
├── notes/ # Notes pages
└── lib/ # API client