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
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
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
- Topics/Categories
- Bookmarks
- Multiple sessions