It's apparently a web app, to help organise projects and involved tasks. Such that clients can also see the progress of the project in metrics at any time.
- Share Data (EX. Sessions) to views (Try Dot Notation)
- Handle 419 errors
- Custom error pages
- Error Message for expired email verify links
- Queue Emails
- Authentication and Security.
- Login.
- Google OAuthLogin.
- Logout.
- Register.
- Email Verification.
- Password Recovery.
- Two Factor Authentication.
- Browser Sessions.
- Views.
- Profile and Preferences.
- Basic Info.
- Notifications.
- Security.
- Profile and Preferences.
- User Roles.
- Select user type after Registration (staff, client).
- After type selection Client gets client role.
- After type selection attach Staff gets no role. This means pending verification.
- Dashboard.
- Projects.
- Project Invitations.
- Tasks Reminder.
- Notifications.
- Projects.
- Invitations.
- Expiring tasks.
- Successful tasks.
- Projects.
- Tasks.
- Invite Collaborator by email.
- Assign to Developer or Team.
- Adding Subtasks.
- Progress Calculation.
- Discussions
- Post.
- Reply.
- Reply.
- Edit - (show edited...).
- Tasks.
- Teams.
- Direct Messaging and email.
- Chat Interface.
- User Activities
- Projects
- Discussions
Still working on it, aiming for something big.
- Clone the repo
git clone https://github.com/anubra266/project-management.git
- Install PHP dependencies
composer install
- Install npm dependencies
npm install
- Copy Environment File
cp .env.example .env
- Generate App key
php artisan key:generate
- Migrate Database
php artisan migrate --seed
- Serve App
php artisan serve
Project progress is average Task scores.
- Weight (1-10) - w
- State - s (100)
- Todo - 5
- Progress - 80
- Testing - 10
- Complete - 5
- Cancelled - 0
- Priority (low, normal, medium, high, highest) - p
- Due Date - dd (100)
A Task with subtasks is in progress if at least one of the subtasks is in progress, and is completed only if all it's subtasks are completed.
- Initial score -> 1 = 1.
- Weight Score = Score * weight -> 1w.
- State var = State Cumm / 100 -> s / 100
- If task has Subtasks. Progress is shared among subtasks.
- Variables
- Subtasks number -> n
- Completed subtasks -> c
- Task progress -> c / n * 80
- Variables
- progress = subtasks ? 80 : c / n * 80
- If task has Subtasks. Progress is shared among subtasks.
- State Score = Weight Score / State var -> 1w * s / 100.
- Total Score = s / w
Id | Title | Weight | State |
---|---|---|---|
1 | Learn React | 8 | completed |
2 | Learn Vue | 10 | progress |
3 | Learn Svelte | 5 | todo |
4 | Learn Angular | 3 | cancelled |
Todo: Would need an eloquent plan on managing task - subtask relationship, as well as assigned user.
Id | Title | Weight | State | task |
---|---|---|---|---|
1 | Learn Vue UI | 10 | completed | 2 |
2 | Learn Vuex | 8 | progress | 2 |
3 | Learn Vue Router | 5 | todo | 2 |
Formular -> 1w * s / 100
- Task 1.
w = 8
s = 5 + 80 + 10 + 5 = 100
result = 8 * 100 / 100 = 8
Total -> 8 / 8
- Task 2.
w = 10
// Has Subtasks -> 1 Complete out of 3
s = 5 + progress = 5 + (1 / 3 * 80) = 31.7
result = 10 * 31.7 / 100 = 8
Total -> 3 / 10
- Task 3.
w = 5
s = 5 = 5
result = 5 * 5 / 100 = 0.25
Total -> 0.25 / 5
- Task 4.
/* Cancelled Task is excluded from Calculation */
Progress = Total Score / Total Possible Score * 100
Total Score = 8 + 3 + 0.25 = 11.25
Total Possible Score = 8 + 10 + 5 = 23
Progress = 11.25 / 23 * 100 = 48.9%
This project is open-sourced software licensed under the MIT license.