Skip to content

A monorepo web app to keep track of my mountain courses.

Notifications You must be signed in to change notification settings

florentcadot/my-mountain-courses

Repository files navigation

My mountain courses

Story

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.

Technos

  • Nx monorepo
  • Microservices architecture with Nest
  • TypeORM + PostgreSQL
  • Angular + TailwindCSS

How does it work ?

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.

Getting started

Development

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

Deploy on a raspberry pi

  • Handle GitHub authentication for raspberry pi
  • Install docker
  • Clone this repo and add .env file
  • Install localtunnel
  • Start front lt -p 8080 & gateway lt -p 3001 tunnels
  • [On local dev computer] Inject gateway URL to the front app
  • Run sh deploy.sh

About

A monorepo web app to keep track of my mountain courses.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published