61 lines
2.4 KiB
Markdown
61 lines
2.4 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)
|
|
|
|
|
|
## Installation
|
|
|
|
### 0 | Requirements
|
|
Meeting Planner runs on virtually any system where Node.js is supported.
|
|
This means it runs on Linux, macOS, Windows as well as container solutions such as Docker / Kubernetes and Heroku.
|
|
|
|
**Versions**
|
|
- Postgres 9.5 or later
|
|
- NodeJS 10.12 or later
|
|
|
|
*[KnexJS](https://knexjs.org/), the database driver used is compatible with other databases like MySQL.
|
|
With small adaptation, it should be possible to use them, but this has not been tested.*
|
|
|
|
### 1 | Configure Postgres to use UTC
|
|
|
|
** Make sure that Postgres database used is configured to UTC **
|
|
`SET TIME ZONE 'UTC';`
|
|
|
|
See [Postgres Documentation](https://www.postgresql.org/docs/current/sql-set.html)
|
|
|
|
### 2 | Create and/or configure environement variables
|
|
|
|
- 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 with npm
|
|
- `npm i`
|
|
|
|
### 4 | Migrate tables to database
|
|
- `npx knex migrate:latest`
|
|
|
|
### 5 | Seed database with dummy content **(optional)**
|
|
Running this will add some accounts along with some meetings.
|
|
- `npx knex seed:run`
|
|
|
|
**Accounts created**
|
|
|
|
| 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 |
|