This Laravel web application fetches to-do tasks from two separate providers and allocates them weekly to a development team. The application includes features for managing providers, tasks, and calculating the optimal task assignments based on developer capacities and task complexities.
- Fetch and manage tasks from multiple providers.
- Assign tasks to developers based on their capacity and difficulty.
- Display weekly task allocations and estimate completion times.
- Add, remove, and update providers via API endpoints.
- View assigned tasks and provider details through web routes.
Tasks are fetched from two providers, each providing the following information:
- Task Name
- Duration (in hours)
- Difficulty Level
The development team consists of 5 developers with the following capacities:
- DEV1: Can complete 1x difficulty task in 1 hour.
- DEV2: Can complete 2x difficulty task in 1 hour.
- DEV3: Can complete 3x difficulty task in 1 hour.
- DEV4: Can complete 4x difficulty task in 1 hour.
- DEV5: Can complete 5x difficulty task in 1 hour.
Each developer works 45 hours per week. The application calculates the optimal assignment of tasks to minimize the total completion time and displays a weekly task schedule.
To set up the project, follow these steps:
- Clone the Repository:
git clone https://github.com/Lopigian/todoplanning.git cd your-project
- Install Dependencies:
composer install
- Copy Environment File::
cp .env.example .env
- Generate Application Key:
php artisan key:generate
- Run Migrations:
php artisan migrate
- Seed the Database: Ensure to seed the database with developers and providers:
php artisan db:seed
- Run the Application:
php artisan serve
A command named FetchTasks has been created to fetch tasks from providers and store them in the database. To run this command, use:
php artisan fetch:tasks
Web Routes Providers List: GET /providers Displays the list of providers.
GET /tasks Displays the list of tasks.
GET /assigned-list Shows the task assignments for developers.
Create Provider: POST /providers Creates a new provider.
PUT /providers Updates an existing provider.
DELETE /providers/{id} Deletes a provider.
GET /providers/all Retrieves all providers.
GET /providers/{id} Retrieves a provider by ID.
Feel free to open issues or submit pull requests if you want to contribute to the project.