Skip to content

Latest commit

 

History

History
194 lines (157 loc) · 5.62 KB

README_working.md

File metadata and controls

194 lines (157 loc) · 5.62 KB

Foodium

Heroku link

setup

  • npm install
  • bundle install
  • webpack -w
  • rake db:create
  • rake db:migrate
  • rake db:seed

Minimum Viable Product

Foodium is a recipe site inspired by Medium that cleanly displays recipes for cooks and lets them engage with the community through following and liking.

By the end of Week 9, this app will, at a minimum, satisfy the following criteria:

  • Hosting on Heroku
  • New account creation, login, and guest/demo login
  • A production README, replacing this README
  • Images hosted on a CDN (Cloudinary) for faster retrieval
    • Static images on cloudinary
    • Using Cloudinary API for upload
  • Recipes
    • Smooth, bug-free navigation
    • Adequate seed data to demonstrate the site's features
    • Adequate CSS styling
  • Comments for recipes
    • Smooth, bug-free navigation
    • Adequate seed data to demonstrate the site's features
    • Adequate CSS styling
  • Rich Text Editing of recipes
    • Smooth, bug-free navigation
    • Adequate CSS styling
  • Liking of recipes
    • Smooth, bug-free navigation
    • Adequate seed data to demonstrate the site's features
    • Adequate CSS styling

Design Docs

Implementation Timeline

Phase 1: Backend setup and Front End User Authentication (2 days, W1 W 6pm)

Objective: Functioning rails project with Authentication

  • create new project
  • create User model
  • authentication
  • user signup/signin pages
  • blank landing page after signin

added

  • deal with errors in login/signup
  • greeting in header
  • bootstrap current user
  • modal for login/signup
  • modal is different for login/signup options
  • modal closes on success
  • seed database with guest account
  • seed database with user accounts
  • guest login option
  • protect front end routes
  • install figaro
  • set up cloudinary for images
  • add intro box for logged out users
  • heroku
    • get site on heroku
    • point domain to heroku

Phase 2: Recipes Model, API, and basic APIUtil (1 day, W1 Th 6pm)

Objective: Recipes can be created, read, edited and destroyed through the API. Â

  • create Recipe model
  • CRUD API for recipes (RecipesController)
  • jBuilder views for recipes index and detail
  • seed the database with a small amount of test data
  • set up Webpack & Flux scaffold
  • set up APIUtil to interact with the API
  • test out API interaction in the console.

added

  • set up RecipeActions and RecipeStore
  • test RecipeActions and RecipeStore in console
  • big box only shows up on index page

Phase 3: Flux Architecture and Router (1 day, W1 F 6pm)

Objective: Recipes can be created, read, edited and destroyed with the user interface.

  • set up the flux loop with skeleton files
  • set up React Router
  • implement each recipe component, building out the flux loop as needed.
    • RecipeIndexItem
    • RecipesIndex
    • RecipeForm
  • save images to Recipes with Cloudinary

Phase 4: Start Styling and first feedback (0.5 days, W2 M 12pm)

Objective: Existing pages (including signup/signin) will look good.

  • create a basic style guide
  • position elements on the page
  • add basic colors & styles
  • ask for feedback when done

Phase 5: Add comments for recipes (1 day, W2 Tu 12pm)

objective: Enable comments with a nice editor.

  • create Comment model
  • API endpoints
    • added
    • tested
  • actions and stores
    • added
    • tested
  • Integrate draft-js
  • Use Rails helpers to sanitize HTML before rendering.
  • Style the new draft-js elements.

Phase 6: Add liking of recipes (1 day, W2 W 6pm)

objective: Make the site feel more cohesive and awesome.

  • create 'Like' model
  • API endpoints
    • added
    • tested
  • actions and stores
    • added
    • tested
  • Get feedback on my UI from others
  • Refactor HTML classes & CSS rules
  • Add modals, transitions, and other styling flourishes.

Phase 7: More styling (.5 days, W2 W 6pm)

  • Re-evaluate styling with comments added

Phase 8: Tags (1 day, W2 Th 12pm)

Objective: Recipes can be tagged with multiple tags, and tags are searchable.

  • create Tag model and Tagging join table
  • Tagging
  • API endpoints
  • API util
  • actions
  • stores
  • Tag
  • build out API, Flux loop, and components for:
  • fetching tags for recipe
  • adding tags to recipe
  • searching recipes by tag
  • Style new elements

Phase 9: Add sidebar for tags (1 day, W2, Fr 6pm)

objective: Add sidebar for groups of recipes

  • Flesh out feed with sidebar
  • Display top 3 of each tag

Bonus Features (TBD)

  • auto-save recipes to desktop after timeout
  • Break instructions into individual steps for styling
  • Break ingredients into individual items
  • save Recipes to the DB when the form loses focus or is left idle after editing.
  • Follow tags for customized feed
  • Follow users for customized feed
  • Pagination / infinite scroll for Recipes Index