todolist-proto/README.md

114 lines
2.3 KiB
Markdown
Raw Normal View History

2026-01-20 18:36:02 +01:00
# Dalex Todo Prototype
A full-stack todo application with Vue3 frontend and ASP.NET Core backend, secured with Keycloak authentication.
## Features
- **Frontend**: Vue3 with TypeScript and Tailwind CSS
- **Backend**: ASP.NET Core 9.0 Minimal APIs with SQLite
- **Authentication**: Keycloak integration
- **Containerization**: Docker and Docker Compose
## Prerequisites
- Docker and Docker Compose
- Keycloak server (configured at https://terminus.bluelake.cloud/)
## Getting Started
### Running with Docker Compose
1. Clone the repository
2. Run the application:
```bash
docker-compose up --build
```
3. Access the application:
- Frontend: http://localhost:3030
- Backend API: http://localhost:5050
### Development Mode
#### Backend
```bash
cd backend
dotnet restore
dotnet run
```
#### Frontend
```bash
cd frontend
npm install
npm run dev
```
## Architecture
### Backend (ASP.NET Core)
- Minimal APIs architecture
- SQLite database for data persistence
- JWT authentication via Keycloak
- RESTful API endpoints for CRUD operations
### Frontend (Vue3)
- TypeScript for type safety
- Tailwind CSS for styling
- Keycloak-js for authentication
- Axios for API calls
## API Endpoints
- `GET /api/todos/recent` - Get recent todos (excludes completed todos older than 1 week)
- `GET /api/todos` - Get all todos
- `POST /api/todos` - Create a new todo
- `PUT /api/todos/{id}` - Update a todo
- `DELETE /api/todos/{id}` - Delete a todo
All endpoints require authentication.
## Todo Features
- Add, edit, and delete todos
- Mark todos as completed with timestamps
- Sort todos: incomplete (older first) at top, completed at bottom
- Filter: Hide completed todos older than 1 week (show via button)
- Each user has their own todos (multi-tenant)
## Configuration
### Keycloak
The application is configured to use Keycloak at `https://terminus.bluelake.cloud/` with:
- Realm: `dalex-immo-dev`
- Client ID: `dalex-proto`
### Ports
- Frontend: 3030
- Backend: 5050
## License
MIT
## Deployment
For deploying Docker images to the Gitea package registry at https://brokkr.robotico.dev/dalex/-/packages, see [DEPLOYMENT.md](DEPLOYMENT.md).
## Development
Before deployment, create a `.env` file in the project root:
```bash
PUBLISH_TOKEN=your_gitea_token_here
```
See `.env.example` for template. The `.env` file is git-ignored and will never be overwritten.