/project-vagabond

Group Rails project - travel community app

Project Vagabond

Brief

We have been commissioned to build a travel community, code-named Project Vagabond for now, for users to share tips (AKA posts) about their favorite locations around the world.

Client Contract

The client has provided basic wireframes and user stories. In some cases, these requirements may be vague or incomplete.

Process

The client contract consists of three core sprints and three bonus sprints. Each sprint contains a set of user stories. You may not complete all of the sprints within the time period, and that's ok. The goal is to gain experience working on a development project in a group while navigating a client's feature list.

IMPORTANT: You may not begin a new sprint or start on a bonus without client approval.

You will work in groups of 3-4.

During morning scrums and in smaller check-ins throughout the day, clearly communicate your current status and next steps to your teammates. Use a kanban-style scrum board such as Trello to organize tasks.

Commit changes at least once for each user story.

Put effort into your design. Use a CSS framework (e.g. Bootstrap, Materializes), partials, and some custom CSS or Sass/Less.

Work as git collaborators, build on feature branches, and submit pull requests for approval and merging.

After each sprint, deploy to heroku to get practice getting the app online. The earlier you resolve deployment, the easier it will be on each updated version.

Refactor your code after each sprint, considering:

  • Indentation
  • Readability/clarity
  • Naming
  • Organization
  • Commenting
  • DRYness

Questions to Ask Yourselves

  1. Are you all clear about what the client wants? Identify vague areas. Seek clarification in any cases where you feel less confident about your interpretation of the client's vision.

  2. What will the UX/UI flow be? Hammer out any areas of ambiguity in the wire frames

  3. Which models do you need to implement? Create an ERD for the client to reference.

  4. What are the major milestones or components that you need to complete? How can these be turned into tasks that group members can complete, either by themselves or in pairs? Where do these milestones overlap and how will those related tasks be managed?

  5. What milestones are you and your group members interested in working on? How can you effectively delegate the work so that each group member is interested, challenged, and productive?

Pair-programming Techniques:

There are several ways to pair-program, but here are a few of the most popular:

  • Ping-Pong - One programmer implements a unit of code, and the other programmer tests it. Then, the tester implements the next unit of code, and the first programmer tests it. Rinse and repeat.
  • Driver / Navigator - Another popular pair-programming pattern, in which one programmer "Drives" by writing the code while their pair "Navigates" by telling the Driver what to write. The Driver does not write any code that the Navigator does not tell them to write, but open discussion between the Driver and Navigator is highly encouraged!
  • Mob Programming - When a problem is particularly difficult to solve, or it is especially important that every developer on the team knows how a feature works, mob programming can be very effective. Mob programming is essentially Driver/Navigator programming, but with the entire team Navigating (by committee) while one programmer writes the code. Switch drivers every 10 minutes.

Presentation

Each group will present their project on Friday, 11/03 starting at 3:00pm for 10 minutes.

Each member of your group should speak for equal parts during your presentation and mention which parts of the project they worked on.

Your presentation should include:

  • Pitch Deck (a link to the best pitch decks)
  • Tour (demo) of your app deployed on Heroku.
  • How did your group approach the requirements? (mention anything unique or creative your group chose to do)
  • What was easier than you thought? What was more challenging?
  • Shout outs for fellow students!

Groups

Each group has an assigned instructor, who will act as your client as well as give technical support during instructor-group meetings.

Group 1- Nate Hodges, Leon Carswell, Rory Johnson, James Peterson

Group 2- Prakesh Rai, Skylar Youmans, Grant Spell, Blake Pitts

Group 3- Glenn Brown, Tory Redner, Chris Mears, Khalif Cooper

Group 4- Jaden Poole, Mark Flores, Brad Farrell, James Royals

Group 5- Jayme Marshall, Aaron Trammell, Hunter Maddux, Brandon Reily

Group 6- Erica Hinchman, Jonathan Hamer, Musa Sillah

Group 7- Thomas Beauregard, Victoria Temple, Andre Robinson

Evaluation

You will be evaluated on the following measures:

  1. Project workflow
  • Frequent commits with good commit messages
  • Effective use of branches
  • Planning to avoid excessive merge conflicts
  • Deliberate approach - route side-in, logical progress from skateboard to car
  • The code is your original code
  1. Execution
  • To what degree does your app fulfill the user stories?
  • Code is clean
  • Follows good naming conventions
  • Code is free of obvious errors and bugs
  • Code demonstrates good problem solving
  • Code is DRY
  1. Technical requirements
  • Full CRUD for cities
  • Custom HTML, CSS, and JavaScript (using the asset pipeline)
  • Commenting (optional)
  1. Creativity
  • Polished appearance
  • Personalized spin, not just a template
  1. Deployment and Functionality
  • Deployed to Heroku
  • Working application that would be make your client satisfied