Skip to content

Latest commit

 

History

History
137 lines (108 loc) · 4.51 KB

MVP.md

File metadata and controls

137 lines (108 loc) · 4.51 KB

Nformd

Nformd

Minimum Viable Product

Nformd is a web application inspired by Medium that will be built using Ruby on Rails and React.js. 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
  • Stories
    • Smooth, bug-free navigation
    • Adequate seed data to demonstrate the site's features
    • Adequate CSS styling
  • Commenting on Stories
    • Smooth, bug-free navigation
    • Adequate seed data to demonstrate the site's features
    • Adequate CSS styling
  • Follows and Feed
    • Smooth, bug-free navigation
    • Adequate seed data to demonstrate the site's features
    • Adequate CSS styling
  • Recommends
    • Smooth, bug-free navigation
    • Adequate seed data to demonstrate the site's features
    • Adequate CSS styling
  • Infinite Scroll for Stories

Design Docs

Implementation Timeline

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

Objective: Functioning rails project with front-end Authentication

  • create new project
  • create User model
  • authentication backend setup
  • create StaticPages controller and root view
  • set up webpack & flux scaffold with skeleton files
  • setup APIUtil to interact with the API
  • set up flux cycle for front-end authentication
  • user signup/sign-in components
  • blank landing component after sign-in
  • style sign-in/signup components
  • seed users

Phase 2: Stories Model, API, and components (2 days, W1 F 6pm)

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

  • create Story model
  • seed the database with a small amount of test data
  • CRUD API for Stories (StoriesController)
  • jBuilder views for Stories
  • test out API interaction in the console.
  • implement each Story component, building out the flux loop as needed.
    • Story Flux Loop
    • StoriesIndex
    • StoryIndexItem
    • StoryShow
    • StoryForm
  • style Stories components
  • seed Stories

Phase 3: Comments (2 day, W2 Tu 6pm)

Objective: Comments belong to Stories, and can be viewed by Story.

  • create Comments model
  • build out API, Flux loop, and components for:
    • Comment CRUD
    • adding Comments requires a Story
    • viewing Comments by Story
  • Use CSS to style new components
  • Seed Comments

Phase 3 adds organization to the Comments. Comments belong to a Story, which has its own Index view.

Phase 4: Followers and Feed (1 days, W2 W 6pm)

Objective: Users can follow many other Users, and view all of their followed Users' Stories in their Feed.

  • create Followings model and join table
  • build out API, Flux loop, and components for:
    • fetching Followers for Users
    • adding Followers to Users
    • unfollowing Users
  • Style new elements
  • Seed additional Users and add Followers to the seeded Users

Phase 5: Allow Users to 'Recommend' Stories (1 days, W2 Th 6pm)

objective: Users can Recommend Stories for later viewing.

  • create Recommends model and join table
  • build out API, Flux loop, and components for:
    • fetching Recommended Stories for Users
    • adding Recommends to Stories
    • un-Recommending Stories
  • Style new elements
  • Seed additional Stories, add Recommends for the seeded Stories

Phase 6: - Pagination / infinite scroll for Stories Index (1 day, W2 F 6pm)

objective: Add infinite scroll to Stories Index

  • Paginate Stories Index API to send 10 results at a time
  • Append next set of results when user scrolls and is near bottom
  • Make sure styling still looks good
  • Ensure we have enough seeded Stories to demo infinite scroll

Bonus Features (TBD)

  • Topics/Categories
  • Bookmarks
  • Multiple sessions