2.3 KiB
2.3 KiB
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
- Clone the repository
- Run the application:
docker-compose up --build
- Access the application:
- Frontend: http://localhost:3030
- Backend API: http://localhost:5050
Development Mode
Backend
cd backend
dotnet restore
dotnet run
Frontend
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 todosPOST /api/todos- Create a new todoPUT /api/todos/{id}- Update a todoDELETE /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.
Development
Before deployment, create a .env file in the project root:
PUBLISH_TOKEN=your_gitea_token_here
See .env.example for template. The .env file is git-ignored and will never be overwritten.