A modern, efficient ticketing and Kanban-style project management application designed to help teams and individuals track tasks, manage workflows, and collaborate seamlessly in real-time.
- Real-Time Collaboration: Instant synchronization of tickets, projects, and users across all clients via WebSockets.
- Interactive Kanban Boards: Drag-and-drop tickets across statuses (To Do, In Progress, Done, Archived) with smooth UI interactions.
- AI-Powered Sub-tasks: Automatically break down complex tickets into actionable sub-tasks using AI.
- Role-Based Access Control: Granular permissions (Owner, Admin, Member) with secure email-based project invitations.
- Responsive & Accessible UI: Beautiful light/dark mode interface built with Svelte 5 runes and Tailwind CSS.
- Robust Testing: Comprehensive test coverage including unit testing (Vitest), backend integration testing (Testcontainers for Postgres), and E2E testing (Playwright).
- Automated CI/CD: Full GitHub Actions pipeline for backend and frontend linting, building, and testing.
- Framework: SvelteKit (with Svelte 5 Runes)
- Styling: Tailwind CSS
- Testing: Vitest & Playwright E2E
- State Management: Reactive Websocket Stores
- Language: Go 1.22
- Router:
go-chi - Database: PostgreSQL (Migrations and queries managed via
sqlc) - Authentication: JWT via HttpOnly Cookies
- Testing: Go testing library with Testcontainers
- Containerization: Docker & multi-stage
Dockerfiles - CI/CD: GitHub Actions
Follow these instructions to get a copy of the project up and running on your local machine for development and testing.
- Docker & Docker Compose
- (Optional, for local non-Docker development) Node.js 22+ and Go 1.22+
-
Clone the repository
git clone https://github.com/LCmaster/NextUp.git cd NextUp -
Start the entire application stack via Docker Compose:
docker-compose up --build
The frontend will be available at
http://localhost:5173and the backend API athttp://localhost:8080.
We take quality seriously. Here is how to run the automated test suites:
The backend uses Testcontainers to automatically spin up a temporary PostgreSQL database for integration tests.
cd backend
go test -v ./...cd frontend
npm ci
# Run unit tests
npm run test:unit
# Run Playwright End-to-End tests
npx playwright install chromium --with-deps
npx playwright testContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.