- Install Python 3.11 or higher
- Install Node.js 18+ and npm
- Install Git
- Install Visual Studio Code
- Install Ollama locally
- Pull at least one Ollama model (
ollama pull llama3.2) - Pull embedding model (
ollama pull nomic-embed-text) - Set up GitHub repository
- Configure VSCode with necessary extensions
- Create basic directory structure
- Initialize Git repository
- Create
.gitignorefile - Create
README.mdwith project description - Add
ABOUT.mdandTASK.mdfiles - Make initial commit
cd backend
python -m venv venv
source venv/bin/activate- Create Python virtual environment
- Create
requirements.txtwith initial dependencies:fastapi==0.115.6 uvicorn[standard]==0.34.0 python-dotenv==1.0.1 pydantic==2.10.6 pydantic-settings==2.10.1 - Install dependencies:
pip install -r requirements.txt - Create
backend/api/main.pywith basic FastAPI app - Create
backend/core/config.pyfor settings management - Create
.envfile with basic configuration - Test server startup:
uvicorn api.main:app --reload - Verify health check endpoint works
cd frontend
npx create-next-app@14 . --typescript --tailwind --app- Initialize Next.js project with TypeScript
- Install additional dependencies:
npm install axios zustand @tanstack/react-query npm install -D @types/node
- Configure
tsconfig.jsonwith path aliases - Set up
next.config.jswith API proxy - Create basic folder structure in
app/ - Create
.env.localwith API URL - Test development server:
npm run dev - Verify Next.js app loads
- Create
docker-compose.ymlfor future containerization - Set up VSCode workspace settings
- Configure Python linting (Black, pylint)
- Configure ESLint and Prettier for frontend
- Create pre-commit hooks
- Document development setup in README
# Backend dependencies
pip install sqlalchemy==2.0.44 alembic==1.16.5 aiosqlite==0.21.0- Create
backend/models/base.pywith SQLAlchemy base - Create database models:
-
models/project.py -
models/document.py -
models/chat.py -
models/message.py -
models/user_settings.py
-
- Set up Alembic for migrations
- Create initial migration
- Create database initialization script
- Test database connection and models
- Create basic CRUD operations
pip install chromadb==1.1.1- Create
backend/core/vectorstore.py - Initialize ChromaDB client with persistence
- Create collection management functions
- Implement vector storage methods
- Test vector insertion and retrieval
- Create collection per project logic
- Implement metadata filtering
- Create storage directory structure
- Implement file upload validation
- Create document storage service
- Add file size checking
- Implement file type validation
- Create file cleanup utilities
- Test file upload/download
pip install ollama==0.6.0 langchain==0.3.27 langchain-community==0.3.30- Create
backend/core/llm.py - Implement Ollama client wrapper
- Create model listing endpoint
- Test basic LLM inference
- Implement streaming responses
- Add error handling for Ollama connection
- Create model switching functionality
pip install pypdf==6.1.1 python-docx==1.2.0 openpyxl==3.1.5 unstructured==0.18.15- Create
backend/services/document_processor.py - Implement PDF processing
- Implement DOCX processing
- Implement TXT/MD processing
- Implement CSV/XLSX processing
- Create text extraction pipeline
- Add metadata extraction
- Test with various file formats
pip install tiktoken==0.12.0- Create
backend/core/embeddings.py - Implement embedding generation using Ollama
- Create
backend/core/chunking.py - Implement recursive text splitter
- Add chunk overlap logic
- Create chunking strategies per file type
- Test embedding generation
- Optimize chunk sizes
- Create
backend/core/rag_pipeline.py - Implement retrieval logic
- Create prompt templates
- Build context injection
- Implement source tracking
- Add relevance scoring
- Create response generation
- Test end-to-end RAG flow
- Create
backend/services/chat_service.py - Implement conversation management
- Add message history handling
- Create context window management
- Implement conversation memory
- Add response streaming
- Test chat functionality
- Create
backend/api/routes/chat.py - Implement POST
/api/chats/{id}/messages - Implement GET
/api/chats/{id} - Create
backend/api/routes/documents.py - Implement POST
/api/projects/{id}/documents - Implement document processing endpoint
- Add error handling middleware
- Test all endpoints with Postman/curl
- Create
backend/services/project_service.py - Implement project CRUD operations
- Add project-document associations
- Create project isolation logic
- Implement project settings management
- Add project export functionality
- Create project import functionality
- Implement project folder management (open/browse project directories)
- Create API routes for all project endpoints
- Write comprehensive tests for project service
- Create
backend/api/routes/projects.py - Implement GET
/api/projects - Implement POST
/api/projects - Implement GET
/api/projects/{id} - Implement PUT
/api/projects/{id} - Implement DELETE
/api/projects/{id} - Add project switching logic
- Test project isolation
- Link documents to projects
- Implement document listing per project
- Add document deletion
- Create document metadata updates
- Implement bulk operations
- Add document search within project
- Test document-project relationship
npx shadcn-ui@latest init
npx shadcn-ui@latest add button card dialog form input label select textarea toast
npm install lucide-react framer-motion- Configure shadcn/ui
- Set up Tailwind CSS properly
- Create theme configuration
- Set up global styles
- Create layout components
- Implement dark mode toggle
- Test component rendering
npm install zustand @tanstack/react-query socket.io-client- Create
frontend/stores/chatStore.ts - Create
frontend/stores/projectStore.ts - Create
frontend/stores/documentStore.ts - Set up React Query provider
- Create API client wrapper
- Implement error handling
- Set up WebSocket client
- Create
frontend/components/layout/Header.tsx - Create
frontend/components/layout/Sidebar.tsx - Create
frontend/components/layout/Footer.tsx - Implement responsive navigation
- Add project switcher
- Create breadcrumb navigation
- Test responsive design
- Create
frontend/app/projects/page.tsx - Create
frontend/components/projects/ProjectList.tsx - Create
frontend/components/projects/ProjectCreate.tsx - Create
frontend/components/projects/ProjectCard.tsx - Implement project CRUD UI
- Add project settings modal
- Create project deletion confirmation
- Test project management flow
npm install react-dropzone- Create
frontend/components/documents/DocumentUpload.tsx - Create
frontend/components/documents/DocumentList.tsx - Create
frontend/components/documents/DocumentCard.tsx - Implement drag-and-drop upload
- Add upload progress indicators
- Create document preview
- Implement bulk upload
- Test file upload with various formats
- Create
frontend/app/chat/[projectId]/page.tsx - Create
frontend/components/chat/ChatInterface.tsx - Create
frontend/components/chat/MessageList.tsx - Create
frontend/components/chat/MessageInput.tsx - Create
frontend/components/chat/Message.tsx - Implement basic message display
- Add message input handling
- Test basic chat UI
pip install python-socketio==5.14.2 python-multipart==0.0.20- Create
backend/api/websocket/chat_ws.py - Implement WebSocket connection handling
- Add streaming response support
- Create room management for projects
- Implement connection authentication
- Add error handling for disconnections
- Test WebSocket connections
- Create
frontend/lib/websocket.ts - Implement WebSocket connection manager
- Add auto-reconnection logic
- Create streaming message handler
- Implement connection status indicator
- Add real-time typing indicators
- Test streaming responses
- Implement live document processing status
- Add real-time chat updates
- Create notification system
- Implement progress bars for operations
- Add connection status UI
- Test real-time features
- Handle offline scenarios
npm install react-markdown react-syntax-highlighter- Create
frontend/components/chat/SourceReferences.tsx - Implement source linking in responses
- Add source preview modal
- Create citation formatting
- Implement source highlighting
- Add "jump to source" functionality
- Test source attribution accuracy
- Implement chat history persistence
- Create chat listing UI
- Add chat search functionality
- Implement chat deletion
- Create chat renaming
- Add chat export (MD, JSON)
- Test chat management features
- Create advanced search UI
- Implement document filtering
- Add date range filters
- Create file type filters
- Implement semantic search UI
- Add search history
- Test search functionality
pip install google-api-python-client==2.184.0 google-auth-httplib2==0.2.0 google-auth-oauthlib==1.2.2- Create
backend/services/google_drive.py - Implement OAuth2 flow
- Create file listing endpoint
- Implement file import functionality
- Add permission handling
- Create sync mechanism
- Test Google Drive integration
- Create integration settings page
- Implement OAuth connection UI
- Create file browser for Google Drive
- Add import selection UI
- Implement sync status display
- Add disconnect functionality
- Test complete integration flow
- Create
backend/api/routes/integrations.py - Implement integration status endpoints
- Add integration settings storage
- Create activity logging
- Implement error recovery
- Add rate limiting
- Test integration resilience
pip install python-jose[cryptography]==3.3.0 passlib[bcrypt]==1.7.4- Create
backend/api/routes/auth.py - Implement JWT token generation
- Create login endpoint
- Add session management
- Implement refresh tokens
- Create middleware for auth
- Test authentication flow
- Implement input sanitization
- Add rate limiting middleware
- Create CORS configuration
- Implement file type validation
- Add SQL injection prevention
- Create security headers
- Test security measures
npm install js-cookie axios-auth-refresh- Create login page
- Implement auth context
- Add protected routes
- Create auth interceptors
- Implement token refresh
- Add logout functionality
- Test auth flow end-to-end
pip install redis==5.0.1 aiocache==0.12.2- Implement caching layer
- Optimize database queries
- Add connection pooling
- Implement batch processing
- Optimize chunking strategy
- Add async operations
- Profile and benchmark
npm install @tanstack/react-virtual react-intersection-observer- Implement lazy loading
- Add virtual scrolling for lists
- Optimize bundle size
- Implement code splitting
- Add image optimization
- Create loading skeletons
- Test performance metrics
- Optimize retrieval algorithms
- Implement hybrid search
- Add result caching
- Optimize prompt templates
- Implement parallel processing
- Add batch embeddings
- Test RAG performance
- Add loading states everywhere
- Implement error boundaries
- Create empty states
- Add tooltips and hints
- Implement keyboard shortcuts
- Create onboarding tour
- Add animations and transitions
- Test UX flows
- Add ARIA labels
- Implement keyboard navigation
- Ensure color contrast compliance
- Add screen reader support
- Create focus management
- Implement skip links
- Test with accessibility tools
- Test on mobile devices
- Optimize touch interactions
- Create mobile-specific layouts
- Implement responsive tables
- Add mobile navigation
- Test on various screen sizes
- Fix responsive issues
pip install pytest==8.4.2 pytest-asyncio==1.2.0 pytest-cov==7.0.0- Write unit tests for services
- Create integration tests for API
- Test database operations
- Test file processing
- Test RAG pipeline
- Implement test fixtures
- Achieve 80% coverage
npm install -D jest @testing-library/react @testing-library/jest-dom @testing-library/user-event- Write component unit tests
- Create integration tests
- Test state management
- Test API interactions
- Implement E2E tests
- Test error scenarios
- Achieve good coverage
npm install -D playwright @playwright/test- Create E2E test scenarios
- Test complete user flows
- Test file upload flows
- Test chat interactions
- Test project management
- Test error recovery
- Automate test runs
- Add docstrings to all Python functions
- Add JSDoc comments to TypeScript
- Create inline code comments
- Document complex algorithms
- Create architecture diagrams
- Document design decisions
- Update ABOUT.md if needed
# FastAPI automatically generates OpenAPI docs- Review auto-generated docs
- Add endpoint descriptions
- Document request/response schemas
- Create API usage examples
- Document error codes
- Create Postman collection
- Test all documented endpoints
- Create user guide
- Write installation instructions
- Create configuration guide
- Document troubleshooting steps
- Create FAQ section
- Add screenshots/videos
- Create quick start guide
- Create production .env template
- Set up environment validation
- Create deployment scripts
- Configure logging
- Set up monitoring
- Create backup scripts
- Document deployment process
# Docker setup- Create backend Dockerfile
- Create frontend Dockerfile
- Update docker-compose.yml
- Create .dockerignore files
- Test container builds
- Optimize image sizes
- Test containerized app
- Create production build scripts
- Optimize backend for production
- Build frontend for production
- Minify and compress assets
- Set up static file serving
- Configure production database
- Test production build
- Perform full system test
- Test with large datasets
- Test concurrent users
- Test error recovery
- Test backup/restore
- Test all integrations
- Document found issues
- Fix critical bugs
- Fix major bugs
- Fix minor bugs
- Fix UI/UX issues
- Fix performance issues
- Retest fixed issues
- Update documentation
- Benchmark API endpoints
- Test with 1000+ documents
- Measure response times
- Check memory usage
- Validate file size limits
- Test concurrent operations
- Document performance metrics
- All tests passing
- Documentation complete
- Security review done
- Performance targets met
- Error handling complete
- Logging configured
- Backup system tested
- Create release notes
- Tag version in Git
- Create installation package
- Prepare deployment guide
- Create upgrade instructions
- Package all documentation
- Create support resources
- Create maintenance plan
- Set up issue tracking
- Plan feature roadmap
- Create feedback collection
- Plan update schedule
- Document known limitations
- Prepare support documentation
- Regular code reviews
- Maintain consistent style
- Refactor when needed
- Keep dependencies updated
- Monitor security advisories
- Regular commits to Git
- Test after each feature
- Regression testing
- Cross-browser testing
- Performance monitoring
- Security testing
- User acceptance testing
- Update README regularly
- Document new features
- Keep API docs current
- Update configuration docs
- Maintain changelog
- Document decisions
- All file formats supported
- RAG pipeline working
- Project management functional
- Chat history persisted
- Source attribution working
- Google Drive integration complete
- Export features working
- Response time < 2 seconds
- Support 1000+ documents
- Handle 10+ concurrent users
- 99% uptime locally
- No data loss
- Secure file handling
- Responsive UI
- Code coverage > 80%
- No critical bugs
- Documentation complete
- All tests passing
- Performance targets met
- Security review passed
- User feedback positive
- Dependencies: Always create a virtual environment and track dependencies
- Version Control: Commit after completing each task
- Testing: Test each component before moving to the next
- Documentation: Document as you build
- Iteration: Some tasks may need revisiting based on testing
- Flexibility: Adjust timeline based on complexity encountered
- AI Assistance: Use Gemini Code Assist and Claude Code for complex tasks
- Code Quality: Run linters and formatters regularly
- Backup: Regular backups of code and test data
- Communication: Document blockers and decisions made
If critical issues arise:
- Git revert to last stable commit
- Restore database from backup
- Clear vector store and re-index
- Restart all services
- Run smoke tests
- Document issue for fix
When all tasks are complete:
- All checkboxes marked
- Final system test passed
- Documentation reviewed
- Release package created
- Deployment successful
- User guide published
- Project marked complete