Skip to content

Latest commit

 

History

History
86 lines (63 loc) · 5.76 KB

project-2.md

File metadata and controls

86 lines (63 loc) · 5.76 KB

Project 2

Overview

This second project is your first foray into building a full-stack application. You'll be building a Node app, which means you'll learn about what it takes to build a functional application from the ground up yourself.

This is exciting! It's a lot, but we'll give you the tools over the next few weeks to be able build what you need, and you get to decide what you do with it. And you get to be creative in choosing what sort of application you want to build!

You will be working individually for this project, and you'll be designing the app yourself. We hope you'll exercise creativity on this project, sketch some wireframes before you start, and write user stories to define what your users will want to do with the app. Make sure you have time to run these ideas by your instructors to get their feedback before you dive too deep into code! Remember to keep things small and focus on mastering the fundamentals -- scope creep/feature creep is the biggest pitfall for any project!

Technical Requirements

Your app must:

  • Have at least 2 models (more if they make sense) that represents the main functional idea for your app. This doesn't include join tables or the user model which should be part of your class's boilerplate code.
    • Note: If your app idea doesn't really call for more models, let your instructors know and they can suggest ideas for other sufficiently difficult replacements for this requirement.
  • Incorporate at least one API. List of examples here: Public API List, Cloudinary for profile pictures, mapbox to show places, etc.
  • Have complete RESTful routes for at least one of your resources with GET, POST, PUT, and DELETE
  • Utilize an ORM to create a database table structure and interact with your relationally-stored data
  • Include a readme file that explains how to use your app
  • Have semantically clean HTML, CSS, and back-end code
  • Be deployed online and accessible to the public

Example Concepts

  • Forum - have it themed around something that utilizes api data
  • Favorite and comment - books, movies, anime, sports players, hikes, plants, etc
  • Blog or journaling app - use a quote api to generate writing prompts
  • Photo sharing app - use cloudinary for your api so folks an upload photos
  • Nextdoor or Craigslist/OfferUp clone - cloudinary api
  • AllRecipes clone - recipe or food api
  • Workout or food tracker app
  • yoga app - use asana api to create sequences or favorite poses

Necessary Deliverables

  • A working full-stack application, built by you, hosted somewhere on the internet
  • A link to your hosted working app in the URL section of your Github repo
  • A git repository hosted on Github, with a link to your hosted project, and frequent commits dating back to the very beginning of the project. Commit early, commit often.
  • A readme.md file with the following:
    • a description of the app
    • installation instructions
    • a link to the deployed live site
    • the approach taken
    • explanations of the technologies used
    • wireframes
    • ERDs
    • a RESTful routing chart of all your app's routes
    • a post-project reflection with any unsolved problems or growth areas you may have had
    • any sources used

Suggestions to meet requirements:

  • Can't figure out a good way to incorporate an API? Use cloudinary and have users upload profile photos!
  • Can't figure out where to put a PUT route? Let the user change their password!

Useful Resources

Pitch Requirements

Pitches will be a readme in the project repo that includes the following:

  • Project Idea and description
  • choice of API you are going to use and a proof of concept (API keys -- hitting the api)
  • ERDs
  • Restful Routing Chart
  • Wireframes of all user views
  • User Stories
  • MVP goals/Stretch Goals

Project Feedback + Evaluation

  • Project Workflow: Did you complete the user stories, wireframes, task tracking, and/or ERDs, as specified above? Did you use source control as expected for the phase of the program you’re in (detailed above)?
  • Technical Requirements: Did you deliver a project that met all the technical requirements? Given what the class has covered so far, did you build something that was reasonably complex?
  • Creativity: Did you added a personal spin or creative element into your project submission? Did you deliver something of value to the end user (not just a login button and an index page)?
  • Code Quality: Did you follow code style guidance and best practices covered in class, such as spacing, modularity, and semantic naming? Did you comment your code as your instructors as we have in class?
  • Problem Solving: Are you able to defend why you implemented your solution in a certain way? Can you demonstrated that you thought through alternative implementations? (Note that this part of your feedback evaluation will take place during your one-on-one code review with your instructors, after you've completed the project.)
  • Total: Your instructors will give you a total score on your project between:

This project will be graded on a Pass/Fail basis

This will serve as a helpful overall gauge of whether you met the project goals, but the more important scores are the individual ones above, which can help you identify where to focus your efforts for the next project!