Skip to content

sf-wdi-gaia/project-4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Unit #4 Project: Portfolio Project

Overview

You’ve come a long way, and it's time to show it. This will be your most advanced project to date, and if you put creativity into it, it'll hopefully be the thing you want to show off most prominently in your portfolio.

You get to call the shots and invent your own idea, choosing a framework & tools that are appropriate for what you want to build. Pull from everything you've learned so far, and tackle something that'll push you a little outside of your comfort zone.

Make sure you review your project proposal with your instructor so you can make sure it's something you can accomplish in the limited time we have, and make sure it's something that'll be impressive visually. Sometimes people do judge a book by its cover – or an app by its design.


Technical Requirements

Your app must:

  • Build a full-stack application by making your own backend and your own front-end
  • Consume and/or serve an API
  • Have an interactive front-end, preferably using a modern front-end framework
  • Be a complete product, which most likely means multiple relationships and CRUD functionality for at least a couple models
  • Use a database, whether that's one we've covered in class or one you want to learn
  • Implement thoughtful user stories that are significant enough to help you know which features to build and which to scrap
  • Have a visually impressive design to kick your portfolio up a notch and have something to wow future clients & employers
  • Be deployed online so it's publicly accessible

Necessary Deliverables

  • A working API, hosted somewhere on the internet
  • A working front-end, 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
  • A README.md file with:
    • An embedded screenshot of the app
    • Explanations of the technologies used
    • A couple paragraphs about the general approach you took
    • Installation instructions for any dependencies
    • Link to your user stories – who are your users, what do they want, and why?
    • Link to your wireframes – sketches of major views / interfaces in your application
    • Link to your pitch deck – documentation of your wireframes, user stories, and proposed architecture
    • Descriptions of any unsolved problems or major hurdles you had to overcome

Suggested Ways to Get Started

  • Don’t get too caught up in too many awesome features – simple is always better. Build something impressive that does one thing well.
  • Design first. Planning with user stories & wireframes before writing code means you won't get distracted changing your mind – you'll know what to build, and you can spend your time wisely by just building it.
  • 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. These are individual projects but you will likely incorporate code from another source. Imagine there is a style guide for writing your code--or better yet, write one!
  • 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 would 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.

Potential Project Ideas

Q&A App

Think of how helpful sites like Quora & StackOverflow are. Maybe there's some other niche, or some surprising twist you can add to the question-and-answer game.

Car Repair Log

Keep up with your vehicle as you commute every day to your final weeks of WDI save things like mileage, last inspect, oil changes, and maybe even receipts & important document you need to have backed up.

Email-like Messages

Imagine a realtime messaging client, but with private messages, an inbox, unread messages, and who knows what else. This is your chance to re-invent email as we know it.


Resources


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:

    Score Expectations
    0 Incomplete.
    1 Does not meet expectations.
    2 Meets expectactions, good job!
    3 Exceeds expectations, you wonderful creature, you!

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!

Releases

No releases published

Packages

No packages published