Express.js + TypeScript backend for a to-do style API. It uses SQLite for persistence, JWT access tokens, refresh tokens, and protected CRUD endpoints.
Deployed API: https://kerkaa-express.proxy.itcollege.ee
Deployed frontend apps that use the backend:
- React version https://kerkaa-react-app-express.proxy.itcollege.ee
- Vue version https://kerkaa-vue-app-express.proxy.itcollege.ee
- Authentication endpoints for register, login, and token refresh
- Protected CRUD endpoints for list items, todo tasks, categories, and priorities
- SQLite persistence with automatic migrations
- JWT-based authorization for API access
- Docker support for local development and deployment
npm install
npm run devThe API runs on http://localhost:3001 by default.
npm run build
npm test
npm run startBuild the image:
docker build -t express1-api .Run the container with Docker Compose:
docker compose up -d --buildThe container listens on port 3000.
The server reads the following environment variables:
JWT_SECRETfor signing access tokensDB_PATHfor the SQLite database file pathPORTto override the default development port
SQLite data is stored in the Docker volume express1-data.
- CORS allows local frontend development from
http://localhost:5173andhttp://localhost:3001, plus*.proxy.itcollege.eehosts. - The public API is intended to be exercised through a client, such as Postman, Thunder Client, or a frontend app.