Coding Dojo Belt Exam (MEAN/Angular 6) - Movies Individual Belt Exam Project created 19 January 2019 and completed 20 January 2019
This is a MongoDB, Express.js, Angular 6, Node.js project designed, built, and deployed to cloud services over a period of 2 days.
-This application was built as part of a Coding Dojo belt exam culminating 2 months of material including HTML, CSS, JavaScript, Typescript, Bootstrap, Angular 6, Express, Node, Mongo and the various ways of using these technologies to develop a modern day application. As the third belt exam we were given 48 hours to start and finsh an application including testing and deployment with the following requirements:
- CRUD operations all working. a. Able to create new movies. b. All movies displayed upon visiting the website. c. User may choose to read the reviews of a particular movie d. Able to add reviews for each movie e. Able to delete each movie.
- Routing. a. Root route redirects to'/movies' to display all the movies. b. Route 'movies/new' displays the form to create a new movie. (Successful create and cancel redirect to the root route) c. Route '/movies/:id' displays the reviews of a particular movie and the delete button. d. Route '/movies/:id/review' displays the form to add a new review for a particular movie.
- Backend validations. a. All movies must have a title of at least 3 characters b. Upon creating a movie, a review must be provided. c. Reviews must have the name of the reviewer, a star rating, and content d. A reviewer's name must be at least 3 characters e. A review star rating must be between 1 and 5 stars f. The content of a review must be at least 3 characters g. Error messages inform the user if a movie or review is not meeting requirements. h. Error messages are custom-writtin (not mongoose default messages)
- HTML and CSS reflect the wirefram to at lesat 75% accuracy.
- You must be able to deploy your work to Amazon EC2 and provide the IP address or subdomain/domain name to where your work has been deployed.
This is a sample movie review page that allows you to read, write, or delete reviews. Buttons are labelled according to their action.
-
Node, Express, and Mongo were used for all backend and data storage logic.
-
Node Package Manager was used to manage all module and library dependencies.
-
Mongoose was used for back-end data validation and Angular were used for front-end form validation.
-
SHA256 was used as a salt/hash algorithm to obsfuscate each user's password stored in Mongodb.
-
Express.js, Nginx, and PM2 were used for server deployment, routing, and execution with data and template client-side service requests handled with Angular 6 and its routing dependency.
-
The application is deployed on a AWS account for cloud services including Ubuntu configuration and management.
This web application may be viewed at: http://54.149.100.125/
Current Maintainer:
- M. Andrew Williams
This project has been sponsored by: Coding Dojo