A Trello-inspired kanban board application for managing tasks and projects.
Getting my feet wet using Rails as an API only resource, Svelte on the frontend and using Bun for fun.
- Framework: Rails 8.0.3
- Language: Ruby 3.4.5
- Database: PostgreSQL
- Server: Puma
- Authentication: JWT (JSON Web Tokens)
- Password Hashing: bcrypt
- Background Jobs: Solid Queue
- Caching: Solid Cache
- WebSockets: Solid Cable
- Deployment: Kamal
- Framework: SvelteKit
- Language: TypeScript
- Build Tool: Vite
- Package Manager: Bun
- Drag & Drop: svelte-dnd-action
- Testing: Playwright (E2E), Vitest (Unit)
- Navigate to the backend directory:
cd backend- Install Ruby dependencies:
bundle install- Set up the database:
bin/rails db:create
bin/rails db:migrate- (Optional) Seed the database:
bin/rails db:seed- Start the Rails server:
bin/rails serverThe backend API will be available at http://localhost:3000
- Navigate to the frontend directory:
cd frontend- Install dependencies using Bun:
bun install- Start the development server:
bun run devThe frontend will be available at http://localhost:5173
From the root directory, you can run both backend and frontend simultaneously:
bun run devThis will start:
- Backend API server on
http://localhost:3000 - Frontend development server on
http://localhost:5173
The API is available at /api/v1:
POST /api/v1/signup- User registrationPOST /api/v1/login- User authenticationGET /api/v1/boards- List all boardsPOST /api/v1/boards- Create a new boardGET /api/v1/boards/:id- Get a specific boardGET /api/v1/boards/:board_id/lists- Get lists for a boardPOST /api/v1/boards/:board_id/lists- Create a new listGET /api/v1/lists/:list_id/cards- Get cards for a listPOST /api/v1/lists/:list_id/cards- Create a new cardPATCH /api/v1/cards/:id- Update a card
Deployment configuration is set up using Kamal. See backend/config/deploy.yml for deployment settings.
For production deployment:
- Configure your server details in
backend/config/deploy.yml - Set up environment variables and secrets
- Deploy using Kamal:
bin/kamal deploy