backend/README.md

50 lines
1.9 KiB
Markdown

## Meeting Planner Backend
Meeting Planner helps you find the best time to schedule a meeting across several timezones.
It's based on the availibity of all participants for specific days.
- [Documentation](https://git.armada.digital/meeting-planner/documentation)
- [Frontend](https://git.armada.digital/meeting-planner/frontend)
# Backend architecture
- [API endpoints](https://git.armada.digital/meeting-planner/documentation/src/branch/master/api-documentation.md)
- [Database design](https://dbdiagram.io/d/5e769ab14495b02c3b88936f)
- [Flowchart](https://app.diagrams.net/#Uhttps://git.armada.digital/meeting-planner/documentation/raw/branch/master/meetingscheduler.drawio)
## Backend installation
### 1 | Create a database on Postgres
Any up to date postgres should work.
You will need the following informations:
- username
- password
- hostname
- database
### 2 | Create and/or configure an `.env` file
- Create a `.env` file at the root of the backend folder
- Replace all variables noted with `$` below, and save it to the `.env` file
```
NODE_ENV=development // This can't be changed for now
PORT=$port_number
DATABASE_URL=postgres://$db_user:$db_user_password@$hostname:5432/$db_name
JWT_SECRET=$long_random_characters
```
### 3 | Installation of packages (NodeJS needs to be installed)
- `npm i`
### Migrate tables to database
- `npx knex migrate:latest`
### Seed database with dummy content (optional)
Running this will add some users and meetings.
- `npx knex seed:run`
**List of users**
| Liza | Emile | Jack | Cynthia | Celine |
|----------------- |------------------ |----------------- |-------------------- | ------------------ |
| liza@example.com | emile@example.com | jack@example.com | cynthia@example.com | celine@example.com |
| liza-password | emile-password | jack-password | cynthia-password | celine-password |