Path: blob/master/april_18/templates/example-project/README.md
1905 views
Project #2: Building Your First Full-stack Application
FEWD | Project 2
PROMPT
Context & Takeaway:
This second project is your first foray into building a full-stack application. You'll be building a Rails 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!
Goal: Build a full-stack, working, publicly accessible Rails app.
DELIVERABLES
Project Requirements & Constraints
Deliverable Title
Breakdown:
Have at least 2 models (more if they make sense); one representing someone using your application, and one that represents the main functional idea for your app
Include sign up/log in functionality, with encrypted passwords & an authorization flow
Have complete RESTful routes for at least one of your resources with GET, POST, PUT, PATCH, and DELETE
Utilize an ORM to create a database table structure and interact with your relationally-stored data
Include wireframes that you designed during the planning process
Have semantically clean HTML and CSS
Be deployed online and accessible to the public
Be a working full-stack application
Be hosted somewhere on the internet
Submission:
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 explanations of the technologies used, the approach taken, installation instructions, unsolved problems, etc.Wireframes of your app, hosted somewhere & linked in your readme
A link in your
README.md
to the publically-accessible user stories you created
Bonus:
Include some of the extra features we discussed in class!
TIMELINE
Deadlines & Due Dates
Deadline | Deliverable |
---|---|
Week 7: Lesson 14 | Full-Stack Rails App |
EVALUATION
Guidelines & Rubric
Your project will be evaluated by your instructors in the following 9 areas:
Model Architecture
OAuth / Login Functionality
RESTful Resources
Database Table Structure
Wireframes & User Stories
Semantic HTML/CSS
Hosting & Documentation
Deployment & Accessibility
Working Functionality
Rubric: Link to rubric.
Based on the requirements, you can earn a maximum of 27 points on this project. Your instructors will score each of your technical requirements using the scale below:
While the overall rubric will serve as a helpful gauge of whether you met project goals, your specific scores are more important since they can help you identify where to focus your efforts in the future!
RESOURCES
Examples & Suggestions
Suggested Ways to Get Started
Begin with the end in mind. Know where you want to go by planning with wireframes & user stories, so you don't waste time building things you don't need
Don’t hesitate to write throwaway code to solve short term problems
Read the docs for whatever technologies you use. Most of the time, there is a tutorial that you can follow, but not always, and learning to read documentation is crucial to your success as a developer
Commit early, commit often. Don’t be afraid to break something because you can always go back in time to a previous version.
User stories define what a specific type of user wants to accomplish with your application. It's tempting to just make them todo lists for what needs to get done, but if you keep them small & focused on what a user cares about from their perspective, it'll help you know what ot build
Write pseudocode before you write actual code. Thinking through the logic of something helps.
Potential Project Ideas
Cheerups The world is a depressing place.
Your task is to create an app that will allow people to create and share "cheerups" - happy little quips to brighten other peoples' days. Cheerups will be small - limited to 139 characters. Members will be able to promote Cheerups that they like and maybe even boost the reputation of the Cheerupper.
Bookmarket You will create an application where users can bookmark links they want to keep.
But what if users could trade bookmarks for other bookmarks? Or sell bookmarks for points? Or send bookmarks to your friends. Or something even crazier.
Photo sharing app Users will be able to register and create albums and photos. Albums and photos will need to be named and described by their owners. Users will be able to view other users' albums. Maybe users can comment on photos, or either up/down vote them.
Useful Resources
Heroku (for hosting your back-end)
Writing Good User Stories (for a few user story tips)
Presenting Information Architecture (for more insight into wireframing)