Skip to content

Latest commit

 

History

History
82 lines (58 loc) · 4.26 KB

projectbrief.md

File metadata and controls

82 lines (58 loc) · 4.26 KB

Project #3: A MEAN Stack App

Overview

Your instructors will partner you with other classmates to design and collaboratively build a MEAN stack app of your own design.

  • Mongo - For the database
  • Express - For the web-framework
  • Angular - Angular(1) for the client-side framework
  • Node - For the server-side language

This is the most realistic stack that you have worked on during the course and will prepare you for working in the industry where the MEAN stack setup is still very popular.

This is meant to push you both technically and collaboratively. It is a lot harder to work in a team than to work by yourself. However, it is very likely thank you are going to find yourself working in a teams throughout your development careers so it's important to learn how to work together.

Make it work, and make it awesome.


Technical Requirements

  • Carefully plan wireframes as a team before starting to code
  • Carefully plan Model schemas* as a team before starting to code
  • Manage team contributions and collaboration using a Git on Github
  • Deploy your application online so it's publicly accessible

Server-side

Your app must:

  • Use Mongo, Node & Express to build a server-side API
  • Your API must have at least 2 related models, one of which should be a user
  • Your API should include all RESTFUL actions for at least one of those models
  • Include authentication to restrict access to appropriate users
  • Include at least one referenced or embedded sub-document, however don't go crazy! You need to manage your time effectively...
  • Include automated tests for at least one resource

Client-side

  • Use Angular to build a front-end that consumes your API
  • Use SCSS instead of CSS
  • Use Webpack & Yarn to manage your dependencies and compile your source code

Necessary Deliverables

  • A working API, built by the whole team, hosted somewhere on the internet
  • A handmade Angular front-end that consumes your own API, hosted somewhere on the internet
  • A link to your hosted working app in the URL section of your Github repo
  • A team git repository hosted on Github, with a link to your hosted project, and frequent commits from every team member dating back to the very beginning of the project
  • A readme.md file with:
    • Explanations of the technologies used
    • A couple of paragraphs about the general approach you took
    • Installation instructions for any dependencies
    • Link to your wireframes – sketches of major views / interfaces in your application
    • Descriptions of any unsolved problems or major hurdles your team had to overcome

Suggested Ways to Get Started

  • Don’t hesitate to write throwaway code to solve short term problems.
  • Read the docs for whatever technologies / frameworks / API’s you use.
  • Write your code DRY and build your APIs RESTful.
  • Be consistent with your code style. You're working in teams, but you're only making one app per team. Make sure it looks like a unified effort.
  • Commit early, commit often. Don’t be afraid to break something because you can always go back in time to a previous version.
  • Keep user stories small and well-defined, and remember – user stories focus on what a user needs, not what development tasks need accomplishing.
  • Write code another developer wouldn't have to ask you about. Do your naming conventions make sense? Would another developer be able to look at your app and understand what everything is?
  • Make it all well-formatted. Are you indenting, consistently? Can we find the start and end of every div, curly brace, etc?
  • Comment your code. Will someone understand what is going on in each block or function? Even if it's obvious, explaining the what & why means someone else can pick it up and get it.
  • Write pseudocode before you write actual code. Thinking through the logic of something helps.

Useful Resources