-
Clone the repo:
git clone https://github.com/viplct/task-management.git cd task-management -
Copy environment files:
cd backend cp .env.example .env -
Start containers:
docker-compose up --build -d
-
Install PHP dependencies (inside the container):
docker-compose exec app composer install docker-compose exec php artisan key:generate (if missing APP_KEY)
-
Frontend should be available at:
http://localhost:5173 -
API should be available at:
http://localhost:8000
- Modular Vue Components: Pages (
ProjectIndex.vue,TaskIndex.vue) and shared layouts (DashboardLayout.vue,AuthLayout.vue) are separated for clarity and reusability. - Laravel API-first backend with resourceful routes and model observers for business logic like task ordering. Sanctum for authentication, FormRequest and Policy for validation.
- Each task has a numeric
orderfield. - Tasks can be reordered using
vue-draggable-next. - New tasks are automatically assigned the next highest
orderusing a Laravel Model Observer.
- Tasks can be filtered by
statusandpriority.
- Backend routes are protected with
auth:sanctum. - Input validation is handled via Laravel FormRequest and Policy.
- Use Resources for Shape API responses, Encapsulate logic for presentation, Prevent over-exposing sensitive data.
- Frontend unit/component tests are written using Vitest + Vue Test Utils.
npx vitest- Backend Feature Tests and Unit Tests.
docker-compose exec app php artisan test- ❌ No real-time updates (e.g., Laravel Echo + Pusher).
- ❌ No soft deletes or activity log/audit trail yet.
- ❌ No Activity Log (Audit Trail).
- ❌ Drag & drop is disabled when filters are applied (to prevent order corruption).
- 📱 UI responsiveness is minimal; could be improved for mobile UX.
- Validate payload in the FE, confirm delete modal, validate for form fields.
- Need more comment in the code.
- Add repository, more services.
- Upgrade to Typescript