# My Weekly To Do List

A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view.

## Features

- Weekly view of tasks and calendar events
- Drag and drop functionality between days
- Calendar integration with Google and Apple Calendar
- Responsive design for all devices
- Accessible user interface (WCAG 2.1 AA compliant)

## Deployment with Docker

This application can be deployed using Docker and Docker Compose.

### Prerequisites

- Docker Engine
- Docker Compose

### Quick Start

1. Clone the repository and navigate to the project directory
2. Build and start the containers:
   ```bash
   docker-compose up --build
   ```
3. Access the application at http://localhost:3000

### Environment Variables

The application requires the following environment variables:

- `DATABASE_URL`: PostgreSQL connection string
- `NEXTAUTH_SECRET`: Secret for NextAuth.js
- `NEXT_PUBLIC_BASE_URL`: Public URL of the application
- `MICROSOFT_CLIENT_ID`: Azure AD Application (client) ID for Microsoft Login
- `MICROSOFT_CLIENT_SECRET`: Azure AD Application secret for Microsoft Login

### Database Configuration

The application uses PostgreSQL for data storage. The Docker Compose setup includes a PostgreSQL service, but you can also connect to an external database by setting the `DATABASE_URL` accordingly.

### Building for Production

To build the production version:
```bash
docker build -t my-weekly-todo-list .
```

## Development

For development, you can run:
```bash
npm run dev
```

## License

This project is licensed under the MIT License.