The frontend is generated with Angular CLI. The backend is made from scratch. Whole stack in TypeScript.
This project uses the MNAN stack:
- Mongoose.js (MongoDB): database
- Nest.js: backend framework
- Angular 2+: frontend framework
- Node.js: runtime environment
Other tools and technologies used:
- Angular CLI: frontend scaffolding
- Bootstrap: layout and styles
- Font Awesome: icons
- JSON Web Token: user authentication
- Angular 2 JWT: JWT helper for Angular 2+
- Install Node.js and MongoDB
- Install Angular CLI:
npm i -g @angular/cli
- Install NestJs CLI:
npm i -g @nestjs/cli
- From project root folder install all the dependencies:
npm i
npm run dev
: concurrently execute MongoDB, Angular build, TypeScript compiler and Express server.
A window will automatically open at localhost:4200. Angular and Express files are being watched. Any change automatically creates a new bundle, restart Express server and reload your browser.
npm run prod
: run the project with a production bundle and AOT compilation listening at localhost:3000
- Go to Heroku and create a new app (eg:
your-app-name
) - Install Heroku CLI
heroku login
mkdir your-app-name && cd your-app-name
git init
heroku git:remote -a your-app-name
- Download this repo and copy all files into
your-app-name
folder npm i
- Edit
package.json
as following:- add this line to scripts:
"postinstall": "tsc -p server && ng build --aot --prod"
- move the following packages from devDependencies to dependencies:
@angular/cli
,@angular/compiler-cli
,@types/*
,chai
,chai-http
andtypescript
.
- add this line to scripts:
- Edit
.env
and replace the MongoDB URI with a real remote MongoDB server. You can create a MongoDB server with Heroku or mLab. git add .
git commit -m "Going to Heroku"
git push heroku master
heroku open
and a window will open with your app online
- you have any suggestion to improve this project
- you noticed any problem or error
To get more help on the angular-cli
use ng --help
or go check out the Angular-CLI README.