Boardly is a collaborative Kanban board app (Trello-like) with real-time updates, drag-and-drop cards, board permissions, profile settings, and mobile-focused UX improvements.
- Backend: Python, Django, Django REST Framework, Channels, Djoser, dj-rest-auth, django-allauth
- Frontend: React, TypeScript, Redux Toolkit, React Router, Axios
- Database: PostgreSQL (SQLite fallback for local/dev)
- Testing: Playwright, Testing Library
- Tooling: Git, GitHub, Docker, Docker Compose, GitHub Actions
backend/ Django API + WebSocket server
frontend/ React + TypeScript client app
.github/ CI workflows
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env
python manage.py migrate
python manage.py runserverBackend runs on http://localhost:8000.
cd frontend
npm ci
npm startFrontend runs on http://localhost:3000.
docker compose up --build- Frontend:
http://localhost:3000 - Backend:
http://localhost:8000 - PostgreSQL:
localhost:5432
Run from frontend/:
npm run lintnpm run test:mobile:publicnpm run test:mobile:smokenpm run test:desktop:smokenpm run qa:publicnpm run qa:local
For authenticated smoke tests, set:
TEST_USERNAMETEST_PASSWORD
- Backend uses ASGI (
daphne) for HTTP + WebSocket support. - Frontend production build is served via
nginx. - CI workflow lives in
.github/workflows/frontend-ci.yml.
- Backend channel layer:
CHANNEL_REDIS_URL(orREDIS_URL) enableschannels_redistransport.- If not set, backend falls back to
InMemoryChannelLayer(ok for local dev, not for multi-instance production).
- Frontend WebSocket base:
REACT_APP_WS_URL(optional). If omitted, WS URL is derived fromREACT_APP_API_URLor current host.
- Frontend reconnect tuning (optional):
REACT_APP_WS_MAX_RECONNECT_ATTEMPTSREACT_APP_WS_BASE_RECONNECT_MSREACT_APP_WS_MAX_RECONNECT_MSREACT_APP_WS_RECONNECT_JITTER_MS
MIT License. See LICENSE.
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.