/js-fullstack-practice

A project for practicing Fullstack JS technologies (Angular 12 + NodeJS-based API + DevOps CI/CD/Monitoring)

Primary LanguageTypeScriptMIT LicenseMIT

Full stack JS practice project

Frontend Backend codecov

A project for practice Fullstack JS technologies

Summary of used technologies:

  • Front-end (Angular 12/TypeScript/SASS/CSS Flex/CSS Grid/Angular Material/Jasmine)
  • Back-end (Node.js/TypeScript/Express/Mongoose/Jest/Cluster)
  • Infra (Docker/GitHub Actions/CI/Codecov/DependaBot/Prometheus/Grafana)

How to run

Development run

Run project locally (tested on Docker Desktop v19)

cd ".docker"
docker-compose up -d mongodb backend frontend #run project services with no monitoring
docker-compose exec backend migrate-mongo up #run migrations
open http://localhost:4200 # open project's frontend

docker-compose up -d prometheus grafana #run monitoring
open http://localhost:3000 # open grafana

Run tests

docker-compose exec frontend ng test --watch=false
docker-compose exec backend npm test

Production run

cd ".docker"
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up mongodb backend frontend -d
open http://localhost

Unit tests will be run automatically during docker image build

Frontend

Backend

  • NodeJs API
  • Express - app.ts
  • TypeScript - #39
  • MongoDB - #35
    • Mongoose - #41
    • DB Migrations - #42
  • Graceful shutdown - #199
  • Auth

DevOps