# Project Name ## Overview This project is built using NestJS and LiveKit server SDK to manage video collaboration sessions, scheduling, and user services. It utilizes Prisma as an ORM for database interactions. ## Getting Started ### Prerequisites - Node.js installed on your machine. - A PostgreSQL database or another SQL database supported by Prisma. - Environment variables for LiveKit and database credentials set up correctly. ### Installation 1. **Clone the repository:** ```bash git clone https://github.com/EPESS/epess-web-backend.git cd epess-server ``` 2. **Install the dependencies:** ```bash npm install ``` 3. **Create the `.env` file:** Create a file named `.env` at the root of the project and set the following environment variables: ``` LIVEKIT_API_KEY=your_livekit_api_key LIVEKIT_API_SECRET=your_livekit_api_secret DATABASE_URL=your_database_url ``` 4. **Run database migrations:** Ensure your database is set up, and use Prisma to run migrations. ```bash npx prisma migrate dev ``` ### Running the Application To start the application: ```bash npm run start:dev ``` This command will start the application in development mode with live reload enabled. ## Services Description ### LiveKit Participant Service This service handles operations related to participants in a LiveKit room. It utilizes the `RoomServiceClient` from the `livekit-server-sdk`. Reference: ```typescript:src/LiveKit/livekit.participant.service.ts startLine: 1 endLine: 8 ``` ### LiveKit Service Responsible for generating access tokens for users to join LiveKit rooms. It utilizes API keys and secrets for authorization. Reference: ```typescript:src/LiveKit/livekit.service.ts startLine: 1 endLine: 26 ``` ### Other Services The project includes additional service files for room management (`livekit.room.service.ts`) and integration with other modules like notifications and payment handling. ## Additional Notes - Ensure that the Prisma service is properly configured and running. - Always make sure to keep your environment variables secure. - To seed the database with initial data, refer to `epess-database/prisma/seed.js`. ## Contributing Please feel free to contribute by opening issues or pull requests. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.