Skip to content

codebyshennan/ufo

 
 

Repository files navigation

Rocket Academy Coding Bootcamp: UFO Express

Requirements

  1. [] Create an app that renders pages for the routes below using the provided wireframes.
  2. [] We recommend working on the pages in the order the routes are listed.
  3. [] Work on the nav bar (listed in More Comfortable below) in the wireframes after finishing other Base requirements.
  4. [] Render HTML using EJS templates server-side.
  5. [] Store data in JSON files on the backend.
  6. [] Style the app with Bootstrap or an equivalent CSS library.
  7. [] Make pages responsive, i.e. usable and attractive in mobile and desktop layouts. Work on mobile layouts first to avoid clutter in mobile layouts.

Comfortable

Sighting Report Create Time

  1. [] Use the JavaScript Date object to record when users create each new sighting report in a standardised format.
  2. [] Render this create time in the sighting view.
  3. [] Note that sighting report create time is distinct from the alleged sighting time.

Sighting Data Validation

  1. [] When creating and editing sightings, run server-side logic that validates user input and rejects invalid input.
  2. [] Abstract data validation functions so they can be reused for both creating and editing sightings.

Navigation Bar

  1. [] Implement a navbar using Bootstrap or a similar CSS library to navigate between pages in our app.
  2. [] Use EJS partials (see 3.2.3: EJS Partials) to re-use navbar code from a single EJS template.

More Comfortable

Data Validation UI

  1. [] If input validation fails for any sighting input, use Bootstrap form validation styles to let the user know what input was invalid.
  2. [] Use a combination of server response data, EJS conditionals, and Bootstrap validation CSS classes to implement validation UI.

JSON File Storage Delete

[] Abstract the DELETE HTTP method's logic into a delete function in our JSON file storage module. GET, POST, and PUT methods' logic should already be handled by read, add, and edit functions in jsonFileStorage respectively.

Date Validation

[] Validate the user can't submit a sighting on a date in the future.

Date Formatting

[] Use Moment to format sighting creation date in "X days ago" format. https://momentjs.com/docs/#/displaying/fromnow/ [] Use Moment to format sighting date in "Monday, September 12th, 1997" format.

Visit Counter

[] Add a visit counter to the home page that keeps count of all home page visits (including repeat visits) via cookies. See 3.5.1: Cookies for a refresher.

Daily Unique Visit Counter

[] Update the visit counter with the following. [] The counter only increments for each user once a day. [] The counter increments for visits to any page on the site.

Favourites

[] Allow the user to select "favourite" sightings. [] Store the list of favourite sightings for a given user in a cookie on the user's browser. [] When that user visits the home page, render a list of links to that user's favourite sightings.

EC2 Deployment

[] Deploy this UFO app on a new AWS EC2 instance.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • EJS 55.7%
  • JavaScript 42.0%
  • CSS 2.3%