This repo contains a job application application developed with the MERN (MongoDB, Express.js, React, Node.js) stack.
- Authentication Routes
- Job Listings Routes
- Rate Limiting
- Authentication
- Security
- Technologies Used
- Contributing
- License
Endpoint
Description
Rate Limit
POST /api/v1/auth/register
Register a new user.
10 requests per 15 minutes per IP.
POST /api/v1/auth/login
Authenticate user credentials and receive a token.
10 requests per 15 minutes per IP.
GET /api/v1/auth/logout
Log out the currently authenticated user.
N/A
PATCH /api/v1/auth/updateUser/:id
Update the profile information of a user.
Authentication Required
GET /api/v1/auth/getCurrentUser
Fetch details of the currently authenticated user.
Authentication Required
Endpoint
Description
Authentication Required
POST /api/v1/jobs/
Create a new job listing.
Yes
GET /api/v1/jobs/
Fetch all job listings.
No
GET /api/v1/jobs/stats
Fetch statistics related to job listings.
No
GET /api/v1/jobs/:id
Fetch a job listing by its ID.
No
PATCH /api/v1/jobs/:id
Update a job listing by its ID.
Yes
DELETE /api/v1/jobs/:id
Delete a job listing by its ID.
Yes
Rate limiting is implemented on the authentication routes with a limit of 10 requests per 15 minutes per IP address
.
To access routes that require authentication, you must include a valid JWT token in the request headers. The token can be obtained by logging in.
- Cross-Origin Resource Sharing (CORS) is enabled with credentials support.
- Various security middlewares like
helmet
,xss-clean
, andexpress-mongo-sanitize
are implemented to enhance application security.
- Node.js
- Express.js
- MongoDB
- JWT for authentication
- Rate limiting with express-rate-limit
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License.