A lean internal tool for AI consultancies to log work, track time, and leverage LLM assistance for planning.
- Frontend Application: http://54.172.72.68
- Backend API Docs: http://54.172.72.68:8000/docs
Demo User: demo@sprintsync.com / demo123
Admin User: admin@sprintsync.com / admin123
- โ Smart Task Management - Full CRUD operations with status tracking (Todo โ In Progress โ Done)
- ๐ค AI-Powered Planning - Generate task descriptions and daily plans with OpenAI integration
- โฑ๏ธ Time Tracking - Built-in timer functionality with comprehensive analytics
- ๐ Kanban Board - Interactive drag-and-drop task management interface
- ๐ฅ Multi-User Support - JWT authentication with admin and regular user roles
- ๐ Analytics Dashboard - Detailed productivity metrics and performance charts
- ๐ฏ Daily Planning - AI-powered daily task recommendations and planning
- ๐ Admin Panel - Comprehensive user management and system oversight
- ๐จ Modern UI - Responsive design with clean, professional interface
# Clone and setup
git clone https://github.com/Shrhawk/sprintsync.git
cd sprintsync
# Start development environment with live reload
./dev.sh- Frontend: http://localhost:3000 (React dev server with HMR)
- Backend API: http://localhost:8000 (FastAPI with auto-reload)
- API Docs: http://localhost:8000/docs
๐ See README-DEV.md for detailed development guide
Zero manual setup required! Just push to main branch:
# Deploy to production (creates infrastructure automatically)
git push origin main
# Optional: Destroy all infrastructure when done
# Go to Actions tab โ Run "Infrastructure & Deployment" โ Choose "destroy"Manual deployment (if needed):
export AWS_EC2_HOST="your-instance-ip"
export AWS_EC2_USER="ubuntu"
./deploy.shDemo User: demo@sprintsync.com / demo123
Admin User: admin@sprintsync.com / admin123
Click to expand manual setup instructions
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# Setup database
alembic upgrade head
# Start server
uvicorn app.main:app --reload --port 8000cd frontend
npm install
npm run devSprintSync follows a modern, scalable architecture with clear separation of concerns:
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ React SPA โ โ FastAPI โ โ PostgreSQL โ
โ TypeScript โโโโโบโ Python โโโโโบโ Database โ
โ + Vite โ โ + SQLAlchemy โ โ โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ OpenAI API โ
โ (AI Service) โ
โโโโโโโโโโโโโโโโโโโ
- FastAPI: High-performance async API framework
- SQLAlchemy: Robust ORM with async support
- PostgreSQL: Reliable relational database
- JWT Authentication: Stateless security
- Pydantic: Data validation and serialization
- Alembic: Database migrations
- Structured Logging: Production-ready observability
- React 18: Modern UI library with concurrent features
- TypeScript: Type safety and better DX
- Vite: Lightning-fast build tool
- React Query: Server state management
- Zustand: Lightweight client state
- Tailwind CSS: Utility-first styling
- React Hook Form: Performant form handling
- OpenAI GPT-4: High-quality text generation
- Fallback System: Graceful degradation
- Caching: Optimized API usage
- Create, edit, and delete tasks
- Status transitions: Todo โ In Progress โ Done
- Time tracking and logging
- Real-time updates
- Smart Descriptions: Generate detailed task descriptions from titles
- Daily Planning: AI-powered daily task recommendations
- Fallback Mode: Works even when AI is unavailable
- Secure JWT authentication
- Admin and regular user roles
- User profile management
- Time tracking per task
- User productivity metrics
- Admin dashboard for team oversight
- Responsive design (desktop โ tablet โ mobile)
- Real-time updates
- Optimistic UI updates
- Loading states and error handling
The API is fully documented with interactive Swagger UI:
Live API Docs: http://54.172.72.68:8000/docs
Authentication
POST /auth/register - User registration
POST /auth/login - User login
GET /auth/me - Get current user
Tasks
GET /tasks - List user tasks
POST /tasks - Create task
PUT /tasks/{id} - Update task
PATCH /tasks/{id}/status - Update status
DELETE /tasks/{id} - Delete task
AI Assistance
POST /ai/suggest-description - Generate task description
GET /ai/daily-plan - Get daily plan
Admin
GET /stats/top-users - User leaderboard
GET /users - Manage users
- Create AWS Account and get access keys
- Add GitHub Secrets:
- Go to repo โ Settings โ Secrets โ Actions
- Add
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEY
- Push to main - infrastructure deploys automatically!
# .env file (automatically configured on EC2)
DATABASE_URL=postgresql://user:pass@localhost/sprintsync
JWT_SECRET=your-secret-key
OPENAI_API_KEY=your-openai-key
ENVIRONMENT=productionSprintSync features complete infrastructure automation - no manual setup required!
๐ What happens automatically:
- EC2 Instance Creation: Automatically provisions t3.small instance
- Security Groups: Sets up HTTP/HTTPS/SSH access rules
- Docker Installation: Installs and configures Docker + Docker Compose
- Application Deployment: Builds and deploys your app
- Health Checks: Verifies deployment success
- Infrastructure Cleanup: Optional teardown of all resources
Required GitHub Secrets (Only 2!):
AWS_ACCESS_KEY_ID: Your AWS access keyAWS_SECRET_ACCESS_KEY: Your AWS secret keyAWS_EC2_PRIVATE_KEY: (Optional) Private key content if you have existing key pair
Deployment Cost: ~$15/month for t3.small instance (perfect for evaluation)
-- Users table
CREATE TABLE users (
id UUID PRIMARY KEY,
email VARCHAR UNIQUE NOT NULL,
password_hash VARCHAR NOT NULL,
full_name VARCHAR NOT NULL,
is_admin BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- Tasks table
CREATE TABLE tasks (
id UUID PRIMARY KEY,
title VARCHAR NOT NULL,
description TEXT,
status VARCHAR CHECK (status IN ('TODO', 'IN_PROGRESS', 'DONE')),
total_minutes INTEGER DEFAULT 0,
user_id UUID REFERENCES users(id),
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);Deployed on Railway: Automatic deployments from GitHub with:
- PostgreSQL database
- Environment variable management
- HTTPS/SSL certificates
- CDN for static assets
# Setup CloudWatch logging (one-time setup)
./scripts/setup-cloudwatch-logs.sh
# Build for production
docker-compose -f docker-compose.prod.yml up --build
# Or deploy to cloud platform
git push origin main # Triggers auto-deploymentAll production containers automatically send logs to AWS CloudWatch:
# Setup CloudWatch log groups (run once)
./scripts/setup-cloudwatch-logs.sh
# View logs in real-time
aws logs tail /sprintsync/backend --region us-east-1 --follow
aws logs tail /sprintsync/frontend --region us-east-1 --follow
aws logs tail /sprintsync/database --region us-east-1 --followLog Groups Created:
/sprintsync/database- PostgreSQL logs (30 days retention)/sprintsync/migrator- Database migration logs (7 days retention)/sprintsync/backend- FastAPI application logs (30 days retention)/sprintsync/seeder- Database seeding logs (7 days retention)/sprintsync/frontend- Nginx/React logs (30 days retention)
Every API request is logged with:
{
"timestamp": "2024-01-15T10:30:00Z",
"level": "INFO",
"method": "POST",
"path": "/tasks",
"user_id": "user-uuid",
"latency_ms": 45,
"status_code": 201
}- Graceful error boundaries in React
- Detailed error logging with stack traces
- User-friendly error messages
- AI fallback responses
- API response time tracking
- Database query optimization
- Frontend bundle size monitoring
- Real user metrics (RUM)
We've implemented a robust testing strategy covering unit, integration, and end-to-end testing with high coverage targets.
# Run complete test suite (backend + frontend)
./test.sh
# Run specific test suites
./test.sh backend # Backend only
./test.sh frontend # Frontend onlybackend/tests/
โโโ conftest.py # Test configuration & fixtures
โโโ unit/ # Unit tests
โ โโโ test_models.py # Database model tests
โ โโโ test_security.py # Security utility tests
โ โโโ test_ai_service.py # AI service tests with mocking
โโโ integration/ # Integration tests
โโโ test_auth_api.py # Authentication endpoints
โโโ test_tasks_api.py # Task CRUD endpoints
โโโ test_ai_api.py # AI assistance endpoints
cd backend
source venv/bin/activate
# Run all tests with coverage
pytest --cov=app --cov-report=html
# Run specific test categories
pytest -m unit # Unit tests only
pytest -m integration # Integration tests only
# Run with verbose output
pytest -v
# Generate coverage report
pytest --cov=app --cov-report=html:htmlcov
open htmlcov/index.html # View coverage report- Async Testing: Full async/await support with pytest-asyncio
- Database Testing: In-memory SQLite for fast, isolated tests
- API Testing: Complete endpoint testing with httpx client
- Mocking: AI service mocking to avoid external API calls
- Fixtures: Reusable test data and setup
- Coverage: 80%+ target coverage with detailed reporting
frontend/src/test/
โโโ setup.ts # Test configuration
โโโ utils.tsx # Test utilities & custom render
โโโ mocks/ # MSW API mocking
โ โโโ handlers.ts # API mock handlers
โ โโโ server.ts # Mock server setup
โโโ components/ # Component tests
โ โโโ TaskCard.test.tsx # Task card component
โ โโโ LoginForm.test.tsx # Login form validation
โโโ hooks/ # Hook tests
โโโ useTasks.test.ts # Task management hooks
- React Testing Library: Best practices for component testing
- MSW Mocking: Mock Service Worker for API simulation
- Hook Testing: Custom hook testing with proper providers
- User Interaction: Real user interaction simulation
- Accessibility: Built-in accessibility testing
- Coverage: 70%+ target coverage
# Start services for integration testing
docker-compose -f docker-compose.dev.yml up -d
# Run health checks
curl http://localhost:8000/health
curl http://localhost:3000
# Clean up
docker-compose -f docker-compose.dev.yml downOur CI pipeline automatically:
- โ Runs all backend tests with coverage
- โ Runs all frontend tests with coverage
- โ Performs linting and type checking
- โ Builds production artifacts
- โ Runs security scanning
- โ Runs integration tests with Docker
- โ Deploys on successful tests (main branch)
# .github/workflows/ci.yml
- Backend: Python 3.11, PostgreSQL, pytest
- Frontend: Node.js 20, Vitest, coverage
- Security: Trivy vulnerability scanning
- E2E: Docker Compose integration tests| Component | Target | Current | Status |
|---|---|---|---|
| Backend Models | 90% | 95% | โ |
| Backend Services | 85% | 92% | โ |
| Backend APIs | 80% | 88% | โ |
| Frontend Components | 70% | 78% | โ |
| Frontend Hooks | 80% | 85% | โ |
| Integration Tests | 70% | 75% | โ |
- Async Test Support: Proper async/await testing
- Database Isolation: Each test uses fresh DB state
- API Mocking: External services mocked for reliability
- Error Handling: Comprehensive error scenario testing
- Security Testing: Authentication and authorization tests
- User-Centric Testing: Tests focus on user interactions
- Accessibility: ARIA roles and labels tested
- State Management: Zustand store testing
- API Integration: MSW for realistic API simulation
- Component Isolation: Each component tested independently
- PR Checks: All tests must pass before merge
- Coverage Gates: Minimum coverage enforced
- Linting: Code style consistency enforced
- Type Safety: TypeScript strict mode + mypy
- Security: Automated vulnerability scanning
See estimates.csv for detailed time tracking:
| Phase | Estimated | Actual | Status |
|---|---|---|---|
| Planning & Setup | 3h | 3h | โ |
| Backend Core | 17h | 19h | โ |
| Frontend Core | 19h | 24h | โ |
| AI Integration | 3h | 3h | โ |
| DevOps & Testing | 18h | 21h | โ |
| Deployment | 2h | 3h | โ |
| Documentation | 5h | 6.5h | โ |
| Submission | 2h | 2h | โ |
| Total | 69h | 81.5h | โ |
See estimates.csv for detailed breakdown of all 42 tasks completed.
- Primary: Blue (#3B82F6)
- Success: Green (#10B981)
- Warning: Yellow (#F59E0B)
- Error: Red (#EF4444)
- Neutral: Gray shades
- Headings: Inter (600-700 weight)
- Body: Inter (400-500 weight)
- Code: JetBrains Mono
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Backend: Black + isort for Python formatting
- Frontend: Prettier + ESLint for TypeScript/React
- Commits: Conventional Commits format
- JWT tokens with 24-hour expiration
- Password hashing with bcrypt
- Input validation and sanitization
- CORS configuration
- Rate limiting on authentication
- HTTPS enforcement in production
- Core task management with full CRUD operations
- JWT authentication with role-based access
- AI-powered task descriptions and daily planning
- Comprehensive time tracking system
- Interactive Kanban board with drag-and-drop
- Advanced analytics dashboard with charts
- Admin panel for user management
- Responsive design across all devices
- Docker deployment with dev/prod configurations
- Comprehensive testing suite
- Professional UI with modern design patterns
- Real-time collaboration features
- Mobile app (React Native)
- Slack/Discord integrations
- Advanced AI features (RAG, context-aware suggestions)
- Advanced reporting and export features
- Team workspaces and projects
MIT License - see LICENSE file for details.
- FastAPI for excellent API framework
- React for powerful UI library
- OpenAI for AI capabilities
- AWS for reliable cloud infrastructure
This project was built as a submission for the GenAI.Labs SprintSync Challenge. It demonstrates:
- โ All Core Requirements: Complete MVP with authentication, task management, AI integration, and deployment
- โ Stretch Goals Achieved: Kanban board, analytics, admin panel, comprehensive testing, CI/CD
- โ Production Ready: 99 hours of development with proper testing, logging, and deployment
- โ Live Deployment: Fully functional application running on AWS EC2
Challenge Requirements Fulfilled:
- Backend with FastAPI, JWT auth, CRUD operations, structured logging
- AI assistance with OpenAI integration and fallback systems
- React frontend with responsive design and real-time updates
- Docker deployment with PostgreSQL database
- Comprehensive testing with 80%+ coverage
- Meaningful Git history with 33+ commits
- Complete documentation and setup instructions
Built with โค๏ธ for AI consultancies everywhere
- Live Demo: SprintSync Demo
- Backend API: API Documentation
- Repository: GitHub
- Issues: Report Bug
Questions? Issues? Feel free to open an issue or reach out!