A modern, production-ready full-stack web application designed for students to share study materials, notes, PDFs, assignments, and resources.
- User Authentication: JWT-based auth with Refresh tokens, Role-based access (Student, Teacher, Admin).
- Notes Management: Upload PDFs, DOCX, Images, and more. Auto-thumbnail generation.
- Search & Filter: Advanced search engine with filtering by subject, university, semester, and trending notes.
- AI Features Integration Ready: Architecture setup for AI summarizer and smart recommendations.
- Premium UI/UX: Built with React, Tailwind CSS, Framer Motion, and Shadcn UI.
- Dockerized: Full Docker and Docker Compose support for easy deployment.
- Database: MongoDB with Mongoose ORM.
Frontend
- React.js (Vite)
- TypeScript
- Tailwind CSS
- React Router DOM
- Zustand (State Management)
- React Query (Data Fetching)
- Framer Motion
Backend
- Node.js
- Express.js
- MongoDB & Mongoose
- JSON Web Tokens (JWT)
- Bcrypt.js
DevOps & Deployment
- Docker
- Docker Compose
EasyNotes/
├── backend/ # Express.js backend application
│ ├── src/ # Source code (controllers, models, routes)
│ ├── Dockerfile
│ └── package.json
├── frontend/ # React.js frontend application
│ ├── src/ # Components, pages, hooks, store
│ ├── Dockerfile
│ └── package.json
├── docker-compose.yml # Docker Compose configuration
└── README.md
- Node.js (v18+)
- MongoDB
- Docker (optional but recommended)
- Clone the repository
- Run Docker Compose:
docker-compose up --build
- Access the application:
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:5000
- Frontend:
1. Backend Setup
cd backend
npm install
npm run dev2. Frontend Setup
cd frontend
npm install
npm run devPOST /api/auth/register- Register a new userPOST /api/auth/login- Login user- (More routes in development...)