A REST API for managing society events using Node.js, Express.js, MongoDB, and Mongoose.
- Node.js
- Express.js
- MongoDB
- Mongoose
- Postman
- Create, read, update and delete events
- Search and filter events
- Pagination and sorting
- Input validation
- Duplicate event checking
- Event status management
- Consistent error handling
event-management-api/
├── server.js
├── db.js
├── Event.js
├── eventRoutes.js
├── eventController.js
├── errorHandler.js
├── .env
└── README.md
npm installCreate a .env file:
PORT=5000
MONGO_URI=mongodb://127.0.0.1:27017/event_managementRun the server:
npm startDevelopment mode:
npm run devBase URL:
http://localhost:5000/api/events
| Method | Endpoint | Description |
|---|---|---|
| POST | / |
Create event |
| GET | / |
Get all events |
| GET | /:id |
Get event by ID |
| PUT | /:id |
Update event |
| DELETE | /:id |
Delete event |
/events?search=hackathon
/events?venue=auditorium
/events?status=upcoming
/events?page=1&limit=10
/events?sort=startDate&order=asc
name
description
startDate
endDate
venue
capacity
status
Supported status:
upcoming
ongoing
completed
cancelled
- Event cannot start in the past.
- Capacity must be greater than 0.
- End date must be after start date.
- Duplicate events are not allowed.
- Completed events cannot be updated or deleted.
200– Success201– Created400– Bad Request404– Not Found409– Conflict500– Server Error