Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anubra266/project-management
Help Developers and Clients Manage and Monitor Projects respectively.
https://github.com/anubra266/project-management
developer-productivity project-management
Last synced: about 2 months ago
JSON representation
Help Developers and Clients Manage and Monitor Projects respectively.
- Host: GitHub
- URL: https://github.com/anubra266/project-management
- Owner: anubra266
- Created: 2020-12-14T02:23:02.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-08T11:58:08.000Z (over 1 year ago)
- Last Synced: 2024-10-26T14:18:18.903Z (3 months ago)
- Topics: developer-productivity, project-management
- Language: PHP
- Homepage:
- Size: 561 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A-PMS
## Contents
- [About](#About)
- [Features](#features)
- [Todos](#todos)
- [Installation](#installation)
- [Technologies Used](#technologies-involved)
- [Calculating project and tasks progress.](#Calculating-project-and-tasks-progress)
- [Example Calculation.](#example-calculation)## 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.
- [x] Login.
- [ ] Google OAuthLogin.
- [x] Logout.
- [x] Register.
- [x] Email Verification.
- [x] 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
- [ ] DiscussionsStill working on it, aiming for something big.
## Installation
- Clone the repo
```bash
git clone https://github.com/anubra266/project-management.git
```- Install PHP dependencies
```bash
composer install
```- Install npm dependencies
```bash
npm install
```- Copy Environment File
```bash
cp .env.example .env
```- Generate App key
```bash
php artisan key:generate
```- Migrate Database
```bash
php artisan migrate --seed
```- Serve App
```bash
php artisan serve
```## Technologies Involved
- **[Laravel](https://laravel.com/)**
- **[VueJs](https://vuejs.com/)**
- **[InertiaJs](https://inertiajs.com/)**
- **[AlpineJs](https://github.com/alpinejs/alpine)*** **[Jetstream](https://jetstream.laravel.com)**
* **[Fortify](https://github.com/laravel/fortify)**
* **[Sanctum](https://laravel.com/docs/8.x/sanctum)**
* **[Spatie](https://spatie.be/docs/laravel-permission)**
## 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.
```js
w = 8
s = 5 + 80 + 10 + 5 = 100
result = 8 * 100 / 100 = 8
Total -> 8 / 8
```- Task 2.
```Js
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.
```js
w = 5
s = 5 = 5
result = 5 * 5 / 100 = 0.25
Total -> 0.25 / 5
```- Task 4.
```js
/* Cancelled Task is excluded from Calculation */
```## Average Score
```js
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](https://opensource.org/licenses/MIT).