A full-stack application for GitHub issue management and automation with Devin AI integration.
- Backend: FastAPI (Python) with Poetry dependency management
- Frontend: Vite + React + TypeScript with Tailwind CSS and Shadcn UI
- Development: Makefile for easy setup and deployment
Before running the application locally, ensure you have the following installed:
-
Python 3.12+
# Check version python --version -
Poetry (Python dependency management)
# Install Poetry curl -sSL https://install.python-poetry.org | python3 - # Add to PATH (add to your shell profile) export PATH="$HOME/.local/bin:$PATH" # Verify installation poetry --version
-
Node.js 18+ and npm/pnpm
# Check versions node --version npm --version # Optional: Install pnpm for faster package management npm install -g pnpm
-
Make (usually pre-installed on Linux/macOS)
# Check if available make --version
-
Clone the repository
git clone <repository-url> cd cognition-app
-
Install dependencies and start development servers
make install-deps # Install all dependencies first make dev # Start both servers
Or in one command:
make dev
This will:
- Start backend with FastAPI dev server (port 8000)
- Start frontend with Vite dev server (port 5173)
- Enable hot reloading for both services
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
If you prefer to set up each service individually:
cd backend
poetry install
poetry run fastapi dev app/main.py --host 0.0.0.0 --port 8000cd frontend
npm install
npm run devCreate a .env file in the backend directory:
# GitHub Integration (optional for testing)
GITHUB_TOKEN=your_github_personal_access_token
# API Configuration
API_HOST=0.0.0.0
API_PORT=8000
# CORS Configuration
FRONTEND_URL=http://localhost:5173Create a .env file in the frontend directory:
# Backend API URL
VITE_API_URL=http://localhost:8000make dev- Start both backend and frontend development serversmake install-deps- Install all dependencies (backend and frontend)make format- Format code (backend with black, frontend if configured)make lint- Lint code (backend with flake8, frontend with eslint)make health- Check health of both servicesmake clean- Clean build artifactsmake help- Show all available commands
- GitHub-like issue table with pagination
- Search and filter functionality
- Label management with tooltip overflow
- Re-sync capability for GitHub repositories
- Default sorting by most recent issues
The test data system creates comprehensive scenarios to test all dashboard features:
- Standard Issues: Mixed labels and content for general testing
- Long Content: Tests UI overflow and responsive design
- No Labels: Tests empty label state handling
- Many Labels: Tests label overflow and tooltip functionality
- Closed Issues: Tests status filtering capabilities
- Old Issues: Tests age-based sorting (1+ years old)
- Recent Issues: Tests recent issue prioritization
- Various Authors: Tests author filtering and display
- Complete issue metadata display
- Scope & Triage workflow with Devin AI integration
- Real-time progress tracking with polling
- Follow-up instruction capability
- Plan execution with branch management
- Target branch selection (defaults to main)
- Continued polling after execution
- PR link display on completion
- Dashboard status updates to "PR Submitted"
GET /api/repos- List connected repositoriesPOST /api/repos/connect- Connect new GitHub repositoryPOST /api/repos/{repo_id}/resync- Re-sync repository issues
GET /api/repos/{repo_id}/issues- List repository issues with paginationPOST /api/issues/{issue_id}/scope- Start issue scoping with DevinPOST /api/issues/{issue_id}/execute- Execute plan with branch configuration
GET /api/devin/{session_id}- Get Devin session status and progressPOST /api/devin/{session_id}/message- Send follow-up instructions
-
Port already in use
# Kill processes on ports 8000 or 5173 lsof -ti:8000 | xargs kill -9 lsof -ti:5173 | xargs kill -9
-
Poetry not found
# Ensure Poetry is in PATH export PATH="$HOME/.local/bin:$PATH" source ~/.bashrc # or ~/.zshrc
-
Node modules issues
cd frontend rm -rf node_modules package-lock.json npm install -
Python dependency conflicts
cd backend poetry env remove python poetry install
- Use
make devfor the best development experience with hot reloading - Backend changes require server restart, frontend changes are hot-reloaded
- Check browser console and terminal output for error messages
- API documentation is available at http://localhost:8000/docs
cd frontend
npm run testcd backend
poetry run pytestFor production deployment, build the frontend and serve both applications:
# Build frontend
cd frontend
npm run build
# Serve backend with production settings
cd backend
poetry run fastapi run app/main.py --host 0.0.0.0 --port 8000- Create a feature branch from main
- Make your changes with proper testing
- Ensure all linting and formatting passes
- Submit a pull request with detailed description
[Add your license information here]