Skip to content

Instantly share code, notes, and snippets.

@Billboz
Created November 22, 2014 21:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Billboz/8f6fe0ef9ba8d29303b8 to your computer and use it in GitHub Desktop.
Save Billboz/8f6fe0ef9ba8d29303b8 to your computer and use it in GitHub Desktop.
Project_Requirements_Plan
##Use Cases/Users Stories for Brians App.... Use as a template for my app!!
Visit the homepage
Visitor should be able to sign up
Visitor should be a le to sign in
Visitor should be able to sign out
User should be able to see their dashboard
There should be three types of users: admin, teacher, Campus Director
Admin should ba able administer the users, inc. set user type (CRUD)
Admin should be able to create a task (READ, TODO)
Admin should be able tho assign a task to to all users of a user type
User should see their outstanding assignments on their dashboard
User should be able to mark an assignment completed
User should receive a weekly email of outstanding assignments, noting which are overdue, and which are upcoming
User and Admin should be able to see an activity list (journal like) of assigned and completed assignments
Users should be able to see all assigned work across all users, with icon showing status (complete, not complete)
Users should receive an email when they receive a new assignment
Users who create an assignment should receive an email when a user completes it
When creating an assignement/task, the body (whick may be instructions or the content to read) should be able to be input via Markdown
Markdown content should render properly on the site
Assignments should have an expected completion date
Assignments should be able to repeat on a schedule (2 blog posts a month, 1 weekly journal every Friday, etc)
Assignments should contain an external link (URL to read, URL for the conference call etc)
Assignments should have a title, expected completion date, description, notes, action type (READ, WRITE, ATTEND, etc)
Users should have a first name, last name, role (Teacher, CD, Admin), email, campus, birthdate
Campuses should have a name, city, state, postal code, phone number
When completing an assignment, users should be able to add a comment and a link (to the item written, or any URL)
When creating an assignment, users should be able to select from a canned assignment list (common assignments)
## Data
* User: first name, last name, role (Teacher, CD, Admin), email, campus, birthdate
* Campus: name, city, state, postal code, phone number
* Assignment: title, expected completion date, description, notes, action type (READ, WRITE, ATTEND, etc)
* Assign Assignment to a User: state (completed, not-completed), user, assignment, assigned_date, completion_date, comment, link
* Common Assignments
## Data Relationships
* User belongs to a Campus and a Campus has many users
* User can be assigned many assignments. Assignments can be assigned to many users.
*
## Failure Points/Potential Pitfalls/Gotchas/Callenges/What happened?!?!?!?
* (for learntastic) The instructor would need to input the concept list up front....
* (for learntastic) Getting everyone onboard including instructors
## Pages ... to go over with a designer
* Home page
* Sign in page
* Sign up page
* User dashboard
* Individual user assignment
* Overview page showing all assignments and users with status icons
* CRUD for Assignments
* CRUD for Users
* CRUD for Common Assignments
* Email: notification of new assignments
* Email: reminder of outstanding assignments
* Email: notification of completion of assignment
## Class Diagram
## Controllers and action
* session (index, signin, signup, signout, user dashboard)
* user
* assignments
* common_assighments
## Gems/Libraries
* kaminari
* activeadmin
## Services
* Github
* Heroku
* ....
## Later
* Add ability to schedule and repeat assignments: 15
* Searching: 12
* Assignment priority: 4
## Sizing
## 1
* Create new Rails app, with .gitignore, pushed to Github: .5
* Create all models with migrations: .5
* Add active admin with sections for all models: 1
* Push to new Heroku app: .5
## 2
* Add bootstrap: .5
* Create a seed file: .5
* Home page, nave bar, header, footer: 1
* User sign in/session management: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment