50 lines
1.9 KiB
Markdown
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 |
|