Skip to content

Bare-bones Task & Project Management with Ruby on Rails.

License

Notifications You must be signed in to change notification settings

ikanade/taskscout

Repository files navigation

TaskScout

A Project and task Management System

Live app - https://taskscout.herokuapp.com/

Overview

An easy to use open source task management tool for small and medium sized teams. Albeit this was built to learn ruby and rails, this particular repo can be extended to suit your needs.

Specifications

1.User Management

1. Using Devise to handle user functionality
2. Signup, Login, Forget Password, etc
3. User can be a part of a project as well as create a project

2.Project Management

1. Creation of project by a user
2. Adding people on a project
3. Create Objectives , Assign Moderators for Objectives .

3.Task Management

1. Creation of tasks, Sub-tasks
2. Assigning and Reassigning of Tasks to members
3. Tasks can have followers and labels
4. Label based task searching
5. Tasks have priority and due date.

4.Notifications

1. User gets notification for current tasks.
2. Users can follow a task or a post
3. User gets notification for the tasks he follow’s

5.Time-Line

1. Two types of timeline , (project and user)
2. Project Timeline shows project related progress
3. User timeline shows their task related progress and updates.

6.Discussions

1. Users can leave comments on tasks
2. Users can leave comments on Post.

Model Schema (draft 1)

Users

id: integer
name: string
email: string
password_digest: string

Projects

id: integer
title: string
deadline: datetime
started_at: datetime
status: string
progress: integer
archive: boolean
creator: integer   foreign_key => user.id

User_Projects

id: integer
role: string
user_id: integer 		foreign_key => user.id
project_id: integer foreign_key => project.id

Tasks (Polymorphic)

id: integer
title: string
priority: string
status: string
progress: integer
description: text
started_at: datetime
due_date: datetime
taskable_type: string
taskable_id: integer   foreign_key => project.id
user_id: integer 			 foreign_key => user.id

labels

id: integer
name: string

task_labels

id: integer
label_id: integer	 foreign_key => label.id
task_id: integer   foreign_key => task.id

Posts

id: integer
title: string
body: text
created_at: timestamp
project_id: integer		foreign_key => project.id
user_id: integer 			foreign_key => user.id

Comments (Polymorphic)

id:	integer
body: integer
user_id: integer  foreign_key => user.id
commentable_type: string
commentable_id: integer

Follows (polymorphic)

id: integer
followable_type: string
followable_id: integer	foreign_key => task.id
follower_id: integer	foreign_key => user.id

Notifications

id: integer
user_id: integer 	foreign_key => user.id
context: string   (defines type of notification)
body: text
created_at: timestamp

Relations

  • one User can have many Projects
  • one Project can have many Users
  • one User can have many tasks
  • one Project can have many tasks
  • task is polymorphic
  • each task can have a sub-task as a task
  • each task can have many labels
  • each label can have many tasks
  • each project can have many posts
  • each post can have many comments
  • each task can have many comments
  • comments is polymorphic
  • each task can have many followers
  • each user can follow many tasks
  • each user can have many notifications

About

Bare-bones Task & Project Management with Ruby on Rails.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published