MEAN Stack for example news APP (project for learning). Angular 7+, Angular Material, NodeJS, Express, Socket.io, Mongoose, Mongo and TypeScript.
news-app it's extensible but simple app with MEAN stack. Built it for learning purpose, it has Socket.io messages communication and full API REST backend with Express. In the front, it has two real views:
- /news: Listed new news (no archived, no deleted)
- /news/archived: Archived news
The functionality of the app is minimal, since the idea was to focus on the skeleton. So nor session or user management are developed (sure you can contribute !)
The project is configured to be built as Docker containers, so Docker is requisite. A docker-compose config file is in root. All other dependencies are loaded by Docker inside containers.
Docker
With Docker we expose services default ports to our machine:
- Front: 4200:4200
- Back: 3000:3000
- DB: 27017:27017
Configuration can be found in docker-compose.yml file.
In Angular project you will find an enviroment config file that can be configurated:
angular-client/src/enviroments
In NodeJS project you will find an enviroment config file that can be configured too:
express-server/src/config/
After Docker is installed, you just 'build' the images with docker-compose and run the containers:
docker-compose build
docker-compose up
Sample data is loaded just once the first time you deploy the application. This sample data is located in:
express-server/src/scripts/news.json
On the server side, you have grunt task configured for your use, take a look in: express-server/gruntfile.js
- Docker - Deployment
- NPM - Dependency Management
- Angular 7+ - The web framework used
- Angular Material - Angular Material design
- NodeJS - Server
- Express - Used for HTTP server and REST API
- Socket.io - WebSocket server communication (client and server)
- Mongose- Object Data Model (ODM) for MongoDB
- MongoDB - Database
- TypeScript - Typescript progrmaming language
- SCSS - Sass style language
- Pug - Pug temlpate rendering
- All dependencies and libraries can be found in both projects package.json dependency file.
Several blogs articles, tutorials and documentation pages helped me to develop this app. Those work must be recognized too.
1.0.0
- Juan Pons - Initial work - juanitopons
Several blogs articles, tutorials and documentation pages helped me to develop this app. Those work must be recognized too.
Free to use project for learning purposes