I wish, one day, to become a mountain guide. To take the exam you have to fulfill a list of several hiking, climbing and skiing courses. Official list of the required courses for 2022. The goal of this project is to build a web app to show publicly my mountain courses recorded in a Notion database.
All the courses are recorded in a Notion database.
- front: Clean architecture Angular front web app
- notion-courses-sync microservice: Retrieves courses from my Notion DB using the Notion API and populates the DB
- courses microservice: Courses CRUD
- identity-manager: SSO authentication using SAMLTest.Id as identity provider
- gateway: A simple microservices gateway
One PostgreSQL DB instance for all the services (for the moment).
One nx library mountain-courses-lib to gather common class/Module/Service.
Requirements :
- Node
- Package manager (npm/yarn/pnpm)
- docker + docker compose
Install node modules
yarn
Start the DB container
docker-compose up
Start the apps
nx run-many --parallel --target=serve
- Handle GitHub authentication for raspberry pi
- Install docker
- Clone this repo and add .env file
- Install localtunnel
- Start front
lt -p 8080
& gatewaylt -p 3001
tunnels - [On local dev computer] Inject gateway URL to the front app
- Run
sh deploy.sh