Express Backend for Parking Finder Application and Control Panel
# Parking Finder Server API
Base URL: `https://s3-parking-finder.vercel.app`
## Core Technologies
1. **Express**: A minimal and flexible Node.js web application framework for building APIs and web applications.
2. **Mongoose (MongoDB)**: An Object Data Modeling (ODM) library for MongoDB and Node.js, simplifying the interaction with MongoDB.
3. **JSON Web Token (jsonwebtoken)**: A library for generating and verifying JSON Web Tokens, used for secure authentication and authorization.
4. **Axios**: A promise-based HTTP client for the browser and Node.js, used for making requests to external APIs.
5. **Multer**: A middleware for handling `multipart/form-data`, used for uploading files.
## Authentication
### Signup User
`POST /signup/user`
Creates a new user.
- Content-Type: `multipart/form-data`
- Parameters:
- profile_image (required, file): User's profile image
- email (required, string): User's email address
- password (required, string): User's password
- userinfo (required, array of objects): User's personal information
- username (required, string): User's username
- nick_name (required, string): User's nickname
- cont_no (required, string): User's contact number
- nid_image (required, string): URL of user's National ID image
- licence_image (required, string): URL of user's driving license image
- role (required, string): User's role
- isVerified (required, string): User's verification status
- Responses:
- 201: User created successfully
- 400: Bad request
- 500: Internal server error
### Signin User
`POST /signin/user`
Sign in a user with their email and password.
- Content-Type: `application/json`
- Parameters:
- email (required, string): User's email address
- password (required, string): User's password
- Responses:
- 200: User signed in successfully
- 400: Invalid email or password
- 500: Internal server error
## Forgot Password
### Forgot Password
`POST /user/forgot-password`
Send an email to reset password.
- Content-Type: `application/json`
- Parameters:
- email (required, string): Email of user who forgot password
- Responses:
- 200: Success
- 400: Bad request
- 404: Not found
- 500: Server error
### Verify Password Reset Token
`POST /user/verifyToken`
Verify that the provided password reset token is valid.
- Content-Type: `application/json`
- Parameters:
- resetToken (required, string): Password reset token
- Responses:
- 200: Password reset token is valid
- 400: Invalid request parameters or invalid password reset token
- 500: Internal server error
### Reset Password
`POST /user/resetPassword`
Reset user password with reset token.
- Content-Type: `application/json`
- Parameters:
- resetToken (required, string): Password reset token
- newPassword (required, string): New password
- Responses:
- 200: Success
- 400: Bad request
- 404: Not found
- 500: Server error
## Manage Users
### Update User Profile
`POST /user/profile/update/{email}`
Update user profile.
- Path Parameters:
- email (required, string): User's email
- Responses:
- 200: Profile updated successfully
### Search User by Email
`GET /user/search/email/{email}`
Search user by email.
- Path Parameters:
- email (required, string): Email to search
- Responses:
- 200: User found
- 404: User not found
### Get All Users
`GET /user/list`
Get all users.
- Responses:
- 200: List of all users
### Delete All Users
`DELETE /user/delete/all`
Delete all users.
- Responses:
- 200: All users deleted
### Search User by Contact Number
`GET /user/search/contno/{cont_no}
Search user by contact number.
- Path Parameters:
- cont_no (required, string): Contact number to search
- Responses:
- 200: User found
- 404: User not found
FGY-Y2J Express Backend
FGY-Y2J Food Delivery App Backend. That power Android, IOS and Web Application.
Parking Finder Dashboard
Final Year Project where our android applications parking data is handled from this dashboard