DownloadTaskList Application
Welcome to TaskList, a simple task management application with a multi-container Docker setup.
Setup Instructions
Prerequisites
-
Docker installed on your system.
-
Ensure `docker-compose` is available.
Environment Configuration
Create .env files for both the backend and frontend services:
Backend (backend/.env )
APP_NAME=TaskList
APP_ENV=local
APP_KEY=base64:APP_KEY_HERE
APP_DEBUG=true
APP_URL=http://localhost:9001
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
Frontend (frontend/.env.local)
NEXT_PUBLIC_API_URL=http://localhost:9001/api
Starting the Application
Clone the repository:
git clone https://github.com/infinitypaul/tasklist.git
cd tasklist
Start the Docker containers:
docker-compose up --build
After the containers are running, access the services:
Frontend: http://localhost:3000
Backend: http://localhost:9001
API Endpoints
Authentication
| Method | Endpoint | Description | Payload |
|--------|----------------|------------------------|----------------------------------------------------------|
| POST | /api/register | Register a new user | { name, username, email, password, password_confirmation } |
| POST | /api/login | Login an existing user | { email, password } |
| POST | /api/logout | Logout a user | None |
| GET | /api/me | Get user profile | None |
Tasks API Endpoints
| Method | Endpoint | Description | Payload |
|--------|--------------------------|------------------------------------|------------------------------|
| GET | /api/tasks | Get all tasks for the user | None |
| POST | /api/tasks | Create a new task | { name, description } |
| GET | /api/tasks/{id} | Get details of a specific task | None |
| PUT | /api/tasks/{id} | Update a task | { name, description } |
| POST | /api/tasks/mark/{id} | Toggle task completion status | None |
Shared Tasks
| Method | Endpoint | Description | Payload |
|--------|-----------------------------|--------------------------------------|------------------------------|
| GET | /api/tasks/shared | Get tasks shared with the user | None |
| POST | /api/tasks/share/{id} | Share a task with another user | { username, permission } |
| GET | /api/tasks/{id}/shared | Get users a task is shared with | None |
Permissions
| Method | Endpoint | Description | Payload |
|--------|---------------------|----------------------------|---------|
| GET | /api/permissions | Get list of permissions | None |
tasklist/
??? backend/ # Laravel Backend
? ??? app/ # Application code
? ??? database/ # Migrations and Seeders
? ??? public/ # Publicly accessible files
? ??? .env # Environment file
? ??? Dockerfile # Docker configuration
??? frontend/ # Next.js Frontend
? ??? src/ # Page components
? ??? components/ # Reusable components
? ??? .env.local # Environment file
? ??? Dockerfile # Docker configuration
??? docker-compose.yml # Multi-container setup
??? README.md # Documentation
Troubleshooting
Ports in Use: Stop other services running on 9001 or 3000 before starting Docker.
Environment Variables: Double-check .env files for typos or missing keys.
|