This project is a RESTful API built with Express.js for managing users and courses. It demonstrates core backend development concepts including CRUD operations, routing, middleware usage, and database integration with MongoDB.
The project is designed as a learning backend system and follows clean and modular structure principles to keep the codebase maintainable and scalable.
- User management (Create, Read, Update, Delete)
- Course management (CRUD operations)
- MongoDB integration using Mongoose
- Structured routing with Express Router
- Input validation and error handling
- RESTful API design
- Modular project structure (controllers, routes, models)
- Node.js
- Express.js
- MongoDB
- Mongoose
controllers/ # Business logic
models/ # Database schemas
routes/ # API routes
config/ # Database connection
middlewares/ # Custom middleware
git clone https://github.com/YousseifNady/express-users-courses-crud.git
cd express-users-courses-crudnpm installnpm run devServer will run on:
http://localhost:3000
- GET /users
- GET /users/:id
- POST /users
- PUT /users/:id
- DELETE /users/:id
- GET /courses
- GET /courses/:id
- POST /courses
- PUT /courses/:id
- DELETE /courses/:id
This project is intended for learning purposes and demonstrates basic backend architecture using Express.js and MongoDB.
Future improvements may include:
- Authentication (JWT)
- Role-based access control
- Input validation library (Joi / Zod)
- Pagination & filtering