Awesome
NestJS Tutorial Repository
Repository will be separated into server
and client
directory for NestJS backend and Angular frontend resepctively.
- Server repository
- Client repository
- Docker support
- Hook up Server and Client
Server-side (NestJS)
This repository houses the Project's backend written using NestJS
- NSwag: Nswag allows us to generate API Calls to our Backend on our Frontend in forms of Functions. The abstraction of HttpClientModule takes place in the generated file.
- Steps:
cd ./server
&npm i
to install all dependencies for Server side- Have an instance of MongoDB running (
mongod
). If you use an IDE like WebStorm, I have a script called:mongo:local
that is going to runmongod
subsequently so you can setup aCompound Run Configuration
withstart:dev
andmongo:local
to start the Backend with ease. npm run start:dev
to start the server
- Note: If there's issue connecting to local MongoDB and you make sure that you already have
mongod
running, go toconfig/default.ts
and check if theMONGO_URI
is correct.
Client-side (Angular)
This repository houses the Project's frontend written using Angular 6
- Ant Design: The components design is by AntDesign (https://ng.ant.design/docs/introduce/en). I really like the subtle looks of AntDesign.
- Steps:
npm i
to install all the dependencies then just start the application withng serve
- Note: Might be worth it to take a look at
proxy.conf.json
and how I setup the CLI to use theproxy
file when serving so that we can call our backend onlocalhost:3000
. This is so-called Cross Domains Request and our backend does not have CORS setup. Proxy will help us making the requests from4200
to3000
.
Docker
Docker is supported.
- Branch:
docker
- Steps: Just clone the repository, check out
docker
branch then fromroot
directory, rundocker-compose up
and Docker will take over. - Note: Angular application will be served by NGINX on
localhost
; Nest application will be running onlocalhost:3000
; cAdvisor which monitors our containers will be running onlocalhost:8080
. Again, it's worthwhile to explore the Dockerfile in bothclient
andserver
directory; alsonginx.conf
anddocker-compose.yml
to get the gist of how Docker and Docker Compose work.
P.S: Pull Requests, Contributions are most definitely welcomed :)