anubra266 / project-management

Help Developers and Clients Manage and Monitor Projects respectively.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A-PMS

Contents

About

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.

Todos

  • Share Data (EX. Sessions) to views (Try Dot Notation)
  • Handle 419 errors
  • Custom error pages
  • Error Message for expired email verify links
  • Queue Emails

Features

  • 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.
  • 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...).
  • Teams.
  • Direct Messaging and email.
    • Chat Interface.
  • User Activities
    • Projects
    • Discussions

Still working on it, aiming for something big.

Installation

  • 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

Technologies Involved

Calculating project and tasks progress.

Project progress is average Task scores.

Task Properties

  • 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)

Sub tasks

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.

Task score

  • 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
    • progress = subtasks ? 80 : c / n * 80
  • State Score = Weight Score / State var -> 1w * s / 100.
  • Total Score = s / w



Example Calculation

Tasks

Id Title Weight State
1 Learn React 8 completed
2 Learn Vue 10 progress
3 Learn Svelte 5 todo
4 Learn Angular 3 cancelled


Sub Tasks

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


Calculation

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 */

Average Score

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%

License

This project is open-sourced software licensed under the MIT license.

About

Help Developers and Clients Manage and Monitor Projects respectively.


Languages

Language:PHP 70.1%Language:Blade 19.5%Language:Vue 9.8%Language:Shell 0.6%