Heroku link Note: This should be a link to your production site
Azana is a web application inspired by Asana that I will build using Rails, React, and Flux. 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
- Tasks for projects
- Ability to add names to tasks *
- Ability to add descriptions to tasks *
- Adequate seed data
- Adequate styling
- Smooth bug free navigation
- Projects with lists of tasks
- Ability to create tasks
- Ability complete a task
- Ability to delete a task
- Ability for whole team to view projects
- Adequate seed data
- Adequate styling
- Smooth bug free navigation
- Teams to manage projects
- Ability to join a team
- Ability to invite to a team
- Team permissions to hide projects from unwanted viewers
- Adequate seed data
- Adequate styling
- Smooth bug free navigation
- Profiles for users
- Ability to add details including picture, name, role, department, and about.
- Ability to view user profile.
- Adequate seed data
- Adequate styling
- Smooth bug free navigation
Objective: Functioning rails project with Authentication
- Set up new project
- Create
User
model - Implement authentication
- Add Sign Up/Sign In pages
- Create basic landing page viewed upon login
Objective: Tasks can be created, read, edited and destroyed through the API.
- Create
Task
model - Create skeleton
Team
model - Create skeleton
Project
model - Seed the database with a small amount of test data
- CRUD API for tasks (
TasksController
) - jBuilder views for tasks
- Set up Webpack & Flux scaffold
- Set up
APIUtil
to interact with the API - test out API interaction in the console.
Objective: Tasks 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 project related component, building out the flux loop as needed.
-
App
-
TasksIndex
-
TaskIndexItem
-
TaskForm
-
Objective: Existing pages (including signup/signin) will look good.
- Create a basic style guide
- Add basic colors & styles
Objective: Projects can be created, edited, and destroyed. Projects have a list of tasks which can be added to through the Project view.
- Finish
Project
model - Finish
Project
component - build out API, Flux loop, and components for:
- Project CRUD
- Fetching tasks for projects
- Adding tasks to a project.
- Editing a task
- Deleting tasks from a project.
- Viewing tasks by projects.
- Use CSS to style new views
Objective: Users have a profile which can store a picture and information about a user.
- Update
User
model to include profile info - Finish
Profile
component - build out API, Flux loop, and components for:
- Viewing a user's profile
- Adding information to a user's profile
- Editing information on a user's profile
- Style new elements
objective: Finish up the Team feature.
- Finish the
Team
model - Finish the
Team
component - Allow inviting other users to a team.
- Teams have many users, users many teams
- Projects belong to a team, teams have many projects
- Allow viewing, editing, creation, and destruction of a team.
- Allow adding projects to, and removing projects from a team.
objective: Make the site feel more cohesive and awesome.
- Get feedback on my UI from others
- Refactor HTML classes & CSS rules
- Add any missing app navigation to the menu
- Add modals, transitions, and other styling flourishes.
- Calendar
- Comments on tasks
- Assign team members to tasks
- Conversations