Code Monkey home page Code Monkey logo

project1_specs's Introduction

#WDI - Project 1

FIRST PROJECT DESCRIPTION

It's time to put everything that you've learned in the past month together! For the first project you will use your knowledge of front and back-end web development to produce an awesome web application that can be used by friends, family or any of the other billions of people who use the Internet. The type of web application you create is your choice.

The objective of this project is to:

  • Apply the skills you've learned by building a web application from the ground up.
  • Demonstrate mastery of topics covered during this course so far.

You will be working individually for this first project. Show us what you've got!

CORE REQUIREMENTS

Make sure to do all of the following with your app.

  • Models. Your app should have at least 2 models with an association.
  • Views. Use partials to DRY (Don’t Repeat Yourself) up your views.
  • Handles invalid data. Your models should validate data and handle incorrect inputs. Validate sign up information, verify valid email addresses, and secure passwords.
  • External APIs. Use an external API to add functionality to your app.
  • Heroku. Deploy your code to Heroku. We will be covering this early next week.
    • A requirement for the Heroku deployment is to ensure you do not expose secrets in your app. Do not check secret keys into Github!
  • Authentication Your site should have an authentication component.
  • Authorization Where appropriate, you should implement an authorization scheme. For example, if you make a blog app, other users should not be able to delete the posts that you create.
    • Testing You should test your code. At the very least have request specs that verify that your pages return a 200 response and model specs that verify your validations.

CHALLENGE ADD-ONS

If you want to push yourself and learn something new, optionally consider doing some of the following with your app:

  • Front-end Framework. Use either Twitter Bootstrap or Foundation to kick-start your front-end.
  • Web Sockets - Use Socket.io to have real time behavior in your app
  • Web Scraping. Check out Casper.

PLANNING & DELIVERABLES

####Project Plan deliverables:

  • Scope. What are you planning to build? What features will it have? What do you reasonably think you can implement in a week? If you run out of time, will you have a working site without completing all that you meant to implement? Try to think of the minimal feature set your site needs in order to function. Get that working first, then focus on new features.
  • Wireframes. Sketch out what a few of your core pages will look like and how they will work. Paper works great. You can also check out wireframing software like Gliffy or Omnigraffle.
  • Object Models. Draw out the model associations for your project.
  • Milestones. Outline some milestones for yourself based on how you prefer to work.

####Completed Project deliverables:

  • Link to your website hosted on Heroku
  • Link to your source code on GitHub

TIMELINE

  • Friday, August 1th - Communicate your app idea to an instructor. Be ready to talk about the scope of your project. Before beginning work on your project, your project idea and the scope of your project must be checked-off by an instructor. You will need the following for an instructor check-off:
    • A plan for your pages
    • A well-defined and written out feature list
    • A written Minimum Viable Product (MVP)
  • Thursday, August 7th - Deploy your code to Heroku by the end of the day. It is not important how much coding you have done at this point; deploy whatever you have. Deploy to Heroku frequently to make your life easier.
  • Friday, August 8th at 9:30am - Project #1 Due and presentations

WHAT WE ARE LOOKING FOR

Code Quality Make sure that your code is:

  • Well-commented
  • Follows javascript coding conventions where appropriate
  • Well-formatted (2 spaces of indentation per code block)
  • Small commits pushed to github frequently. The commits should focus on a single change. Avoid large commits that deal with many distinct changes to the code.

We’ll also be looking at:

  • Quality of communication around decision-making. Can you defend why you chose a certain technology or why you implemented your solution in a certain way?
  • Your ability to pick up new technologies and push yourself.

project1_specs's People

Contributors

bridgpal avatar

Stargazers

Dustin Yu avatar

Watchers

Tim Licata avatar Han Seoul-Oh avatar  avatar James Cloos avatar  avatar Delmer avatar Colt Steele avatar Elie Schoppik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.