Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abulfozoljumman/meeting-manager-backend
https://github.com/abulfozoljumman/meeting-manager-backend
express-js jwt-token mongodb mongoose node-js zod-validation
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/abulfozoljumman/meeting-manager-backend
- Owner: AbulFozolJumman
- Created: 2024-07-27T13:48:07.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-04T15:29:29.000Z (2 months ago)
- Last Synced: 2024-09-05T21:39:07.687Z (2 months ago)
- Topics: express-js, jwt-token, mongodb, mongoose, node-js, zod-validation
- Language: TypeScript
- Homepage: https://meeting-manager-backend-seven.vercel.app/
- Size: 104 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Meeting-Manager-Backend
## Project Overview
The Meeting Manager is a backend service designed to handle room slot bookings for meeting. It includes functionalities for managing users, rooms, slots, and bookings. The project is built using Express.js, Mongoose, Zod for validation, and npm as the package manager.
## Features
- **User Management**: Supports role-based access control (Admin, User).
- **Room Management**: Allows admins to create, view, update, and delete rooms.
- **Slot Management**: Admins can create slots, and users can view available slots.
- **Booking Management**: Users can book and see their bookings. Admins can view, update, delete bookings.## Server link - https://meeting-manager-backend-seven.vercel.app/
## API Endpoints
### User
- `POST /api/auth/register`: Register a new user.
- `POST /api/auth/login`: Authenticate a user.(You will get a token)### Authorization
- `Bearer ` : In Postman, select Auth Type - Bearer Token and give the token you got while login
### Rooms
- `POST /api/rooms`: Create a new room (Admin only).
- `GET /api/rooms`: Retrieve all rooms.
- `GET /api/rooms/:id`: Retrieve single room.
- `PUT /api/rooms/:id`: Update a room (Admin only).
- `DELETE /api/rooms/:id`: Soft delete a room (Admin only).### Slots
- `POST /api/slots`: Create slots for a room (Admin only).
- `GET /api/slots/availability`: Get available slots for a specific room. You can also query by date & roomId.### Bookings
- `POST /api/bookings`: Book a room (User only).
- `GET /api/bookings`: Get all bookings (Admin only).
- `GET /api/bookings/my-bookings`: Get bookings for the logged-in user.
- `PUT /api/bookings/:id`: Update single booking (Admin only).
- `DELETE /api/bookings/:id`: Soft delete single booking (Admin only).## Getting started locally
### 1. Clone the Repository
```bash
git clone https://github.com/AbulFozolJumman/Meeting-Manager-Backend.git
```### 2. Install Dependencies
Use npm to install the necessary dependencies:
```bash
npm install
```### 3. Set Up Environment Variables
Create a `.env` file in the root of the project and configure the following environment variables:
```env
NODE_ENV=development
PORT=2024
DATABASE_URL
BCRYPT_SALT_ROUND
JWT_ACCESS_SECRET
JWT_REFRESH_SECRET
JWT_ACCESS_EXPIRES_IN
JWT_REFRESH_EXPIRES_IN
```### 5. Start the Development Server
To start the server in development mode:
```bash
npm run build
npm run start:dev
``````browser
http://localhost:2024/
```