Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gothenburger

 Gothenburger

See me talk through this here: https://youtu.be/1BaDfyW4sec
GitHub repo: https://github.com/chrisco/gothenburger

Christopher Comella

December 03, 2015
Tweet

More Decks by Christopher Comella

Other Decks in Technology

Transcript

  1. What’s Gothenburger? Gothenburger is a proprietary project of mine that

    I am working on individually while a student at Makers Academy. The purpose of Gothenburger is to help people answer the question, ”Who’s got the best burger in Gothenburg?!” Since I want to maximize (1) learning and (2) quality, and I won't be able to complete the application in one week, which is the time I have to work on it, I will initially focus on one part of the app, the administrative part. Why? Because admin-facing apps are important (even if they're not sexy). And I've already worked on multiple customer-facing apps, so why not. Plus, I like to be different.
  2. MVP Features (tentative) • Internationalization from the start (Swedish and

    English). • Sign-up and Sign-in Restaurant Owners. • Restaurant Owners can CRUD Restaurants. • Restaurants can have many Burgers (and Burgers belong to Restaurants). • Restaurant Owners can CRUD Burgers (I’m leaning towards crowdsourcing Burgers and letting verified Restaurant Owners claim them (like Yelp does). • Anyone can search, view, sort, and filter the list of Burgers. • Anyone can view individual Burgers. • Sign-up and Sign-in Burger Lovers. • Burger Lovers can rate, vote, list, and comment on Burgers. • Lots more feature ideas, including monetization, but they come after the MVP.
  3. I use a lightweight, lean/agile approach that I call "Scrum-flavored

    Kanban sprinkled with XP, with a side of Lean Startup." Basically that’s Kanban that includes the “best” parts of Scrum, XP, and Lean Startup: • Scrum: YES: Cross-functional, self-organizing teams, and retrospectives. NO: Sprints or story points. • Kanban: Pull, limited WIP, bite-sized cards, and continuous improvement. • XP: Simple, clear design, short releases, pairing, testing (pragmatically, I believe, no dogmatically), refactoring, continuous integration and deployment. • Lean Startup: Customer Development and fast Build, Measure, Learn cycles. Project Management / Software Development
  4. Legend • Columns ◦ Icebox: Vaguely-prioritized, one-line ideas for "maybe

    someday." ◦ Backlog: Partially prioritized, sometimes fleshed out cards to get done before project’s end. ◦ On Deck: Discuss and write User Stories that meet INVEST criteria. Assign to team member. ◦ In Process: What's being worked on right now. ◦ Verification: Pull requests, code reviews, CI, staging, customer acceptance, etc. ◦ Done: Deployed to production. • Cards ◦ Colors: ▪ Blue and Green: User Stories (Blue for MVP features) ▪ Yellow: Tasks ▪ Red: Bugs ◦ Numbers: Numbering system for easy filtering and sorting of cards.
  5. Git Branches and Workflow 1. Work on Feature branches. 2.

    Merge Feature branches to Develop branch when features are done. 3. Develop branch automatically deploys to staging server (if all tests pass). 4. Merge Develop branch to Master branch. 5. Master branch automatically deploys to production server (if all tests pass).
  6. Continuous Integration The CI process uses Coveralls, Semaphore, with automatic

    deployment to staging and production (unless tests fail).
  7. Key Technologies (partial list) • Backend: Node.js • Backend: Ruby

    on Rails (see the Gemfile for list of Ruby Gems used) • Authentication: Devise • Authorization: TBD • Database: PostgreSQL • Frontend: AngularJS • Hosting: Heroku (for now) • Styling: Bootstrap • Testing (TDD/BDD): ◦ RSpec and Capybara ◦ Jasmine, Protractor, and Teaspoon (maybe)
  8. User Types (tentative) 1. Site Owner: Can do everything, plus

    CRUD/assign/revoke Site Admins. 2. Site Admins: Can do “everything” except things that only the Site Owner can do. 3. Moderators: Can moderate User Generated Content (UGC) and block/unblock Users and IPs. 4. Restaurant Owners: Can do everything Restaurant Admins can do, plus CRUD Restaurants and CRUD/assign/revoke Restaurant Admins. 5. Restaurant Admins: Can edit the Restaurant-related data for their Restaurant (profile info, menu info, etc.). 6. Burger Lovers: Can do everything Visitors can do, plus do things such as rate and comment on Burgers and Restaurants. 7. Visitors (i.e., unregistered users): Can search, filter, sort, and sign up as Users.
  9. • As you can tell, there’s a lot of work

    to be done. • I will take a break and then decide how to proceed. Next Steps
  10. Thank You! • It’s been a great 12 week with

    you guys and I learned a ton and am grateful for every second, every up, and every down. • Thank you, best wishes, and keep in touch! • PS: I’ll see you some next week some, especially if there is going to be a final wrap up! Catch you on Slack!