Transform your report writing with intelligent document processing, semantic search, and GPT-4 content generation.
Writing professional reports is time-consuming and tedious:
- Reading through multiple documents to find relevant information
- Manually extracting and organizing content into sections
- Writing coherent content that synthesizes information from various sources
- Maintaining consistent formatting and structure
Reportify automates the entire report writing process using AI:
- π Smart Document Processing - Upload PDFs, auto-extract sections
- π Semantic Search - Find relevant information using AI, not just keywords
- π€ AI Content Generation - Generate high-quality content with GPT-4
- π€ Professional Export - Export to PDF or DOCX with perfect formatting
- Uses OpenAI GPT-4 for intelligent content creation
- Context-aware generation based on your uploaded notes
- Automatic citation tracking
- Multiple generation modes: generate, improve, expand
- Vector embeddings using Sentence Transformers
- Qdrant vector database for fast similarity search
- Understands meaning and context, not just keywords
- Find relevant content across all your documents
- Automatic PDF text extraction with PyMuPDF
- OCR for scanned documents and images (Tesseract)
- Template structure detection and section extraction
- Async processing with Celery for large files
- Export to PDF with professional formatting (ReportLab)
- Export to DOCX for further editing (python-docx)
- Maintains section structure and formatting
- Ready to submit or share
- Built with React 18 and TypeScript
- Beautiful UI components from shadcn/ui
- Tailwind CSS for styling
- Smooth animations and transitions
- Fully responsive design
- JWT-based authentication
- Access and refresh tokens
- Protected API endpoints
- User-specific data isolation
Backend:
- FastAPI - Modern Python web framework
- SQLAlchemy - ORM for database operations
- Celery - Async task processing
- OpenAI API - GPT-4 for content generation
- Sentence Transformers - Text embeddings
- Qdrant - Vector database for semantic search
- PyMuPDF - PDF text extraction
- Tesseract - OCR for images
- ReportLab - PDF generation
- python-docx - DOCX generation
Frontend:
- React 18 - UI framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- shadcn/ui - Component library
- React Router - Navigation
- Zustand - State management
- Axios - HTTP client
Infrastructure:
- Docker - Containerization
- PostgreSQL - Primary database
- Redis - Caching and message broker
- MinIO - S3-compatible object storage
- Qdrant - Vector database
βββββββββββββββ
β Browser β
ββββββββ¬βββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β React Frontend β
β (TypeScript + Tailwind + shadcn/ui) β
ββββββββββββββββββββ¬βββββββββββββββββββββββ
β HTTP/REST
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β FastAPI Backend β
β βββββββββββββββββββββββββββββββββββ β
β β Authentication Service β β
β β Report Service β β
β β Upload Service β β
β β Content Generation Service β β
β β Search Service β β
β β Export Service β β
β βββββββββββββββββββββββββββββββββββ β
βββββ¬βββββββββ¬βββββββββ¬βββββββββ¬ββββββββββ
β β β β
βΌ βΌ βΌ βΌ
ββββββββββ ββββββββ ββββββββ ββββββββββ
βPostgresβ βRedis β βMinIO β βQdrant β
ββββββββββ ββββββββ ββββββββ ββββββββββ
β
βΌ
ββββββββββββββββββββ
β Celery Worker β
β - PDF Process β
β - OCR Process β
β - Embeddings β
ββββββββββββββββββββ
Before you begin, ensure you have the following installed:
- Docker Desktop - Download here
- Required for PostgreSQL, Redis, MinIO, and Qdrant services
- Python 3.11 or higher - Download here
- Node.js 18 or higher - Download here
- Git - Download here
Follow these steps carefully to get the application running on your local machine.
git clone https://github.com/MuLIAICHI/reportify.git
cd reportifyOpen Docker Desktop, then run:
docker-compose up -dThis command starts four essential services:
- PostgreSQL - Database (port 5432)
- Redis - Message broker and cache (port 6379)
- MinIO - File storage (port 9000, console: 9001)
- Qdrant - Vector database for semantic search (port 6333)
Verify services are running:
docker psYou should see 4 containers running.
Open a new terminal and navigate to the backend directory:
cd backendCreate and activate a virtual environment:
Windows:
python -m venv venv
venv\Scripts\activateLinux/Mac:
python -m venv venv
source venv/bin/activateInstall Python dependencies:
pip install -r requirements.txtConfigure environment variables:
Windows:
copy .env.example .envLinux/Mac:
cp .env.example .envIMPORTANT: Edit the .env file and add your OpenAI API key:
OPENAI_API_KEY=sk-your-actual-api-key-hereGet your API key from: https://platform.openai.com/api-keys
Initialize the database:
alembic upgrade headYou need TWO separate terminals for the backend:
Terminal 1 - FastAPI Server:
cd backend
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000Terminal 2 - Celery Worker:
cd backend
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
celery -A app.worker.celery_app worker --loglevel=info --pool=soloVerify backend is running:
- Open http://127.0.0.1:8000/docs in your browser
- You should see the FastAPI interactive documentation
Open a third terminal and navigate to the frontend directory:
cd frontendInstall Node.js dependencies:
npm installStart the development server:
npm run devOpen your browser and navigate to:
- Frontend Application: http://localhost:5173
- Backend API Docs: http://127.0.0.1:8000/docs
- MinIO Console: http://localhost:9001
- Username:
minioadmin - Password:
minioadmin
- Username:
Before using the application, verify all services are running:
- Docker containers are running (4 containers)
- FastAPI server is running (Terminal 1)
- Celery worker is running (Terminal 2)
- Frontend dev server is running (Terminal 3)
- Can access http://localhost:5173
- Can access http://127.0.0.1:8000/docs
Run this script to check all services (Windows):
scripts\verify_deployment.batPort already in use:
- Check if another application is using ports 5173, 8000, 5432, 6379, 9000, or 6333
- Stop the conflicting application or change ports in configuration files
Docker containers not starting:
- Ensure Docker Desktop is running
- Try:
docker-compose downthendocker-compose up -d
Python dependencies installation fails:
- Ensure you're using Python 3.11 or higher:
python --version - Try upgrading pip:
pip install --upgrade pip
OpenAI API errors:
- Verify your API key is correct in
backend/.env - Check you have credits: https://platform.openai.com/usage
Frontend not loading:
- Clear browser cache
- Check console for errors (F12)
- Ensure backend is running first
- Open http://localhost:5173
- Click "Get Started" to register
- Fill in email, password, and full name
- Login with your credentials
- Click "Create New Report" button
- Enter report title and description
- (Optional) Upload a PDF template
- Template sections will be automatically extracted
- Click "Create Report"
- Open your report
- Click "Upload Notes" button
- Select PDF, text, or image files
- Wait for processing (check Celery worker logs)
- Notes are processed and embeddings are generated
- Click "Search Notes" tab
- Enter a search query
- View semantically relevant results
- Results are ranked by similarity, not just keywords
- Click on a section in your report
- Click "Generate Content" button
- Wait for AI generation (uses GPT-4)
- Review generated content
- Edit manually if needed
- Content is automatically saved
- Click "Export" button
- Choose format:
- PDF - Professional formatting, ready to share
- DOCX - Editable in Microsoft Word
- Download your report
π₯ Download Video (8.23 MB) | π₯ View in Browser
2-minute walkthrough demonstrating all features
- β Smart document processing with PDF parsing
- β Semantic search using AI embeddings
- β GPT-4 content generation in action
- β Professional PDF/DOCX export
π‘ Tip: Click "View in Browser" above to watch the video directly on GitHub with the built-in player!
This project was built for the Dynamous Kiro Hackathon (January 5-26, 2026).
Innovation:
- Semantic search using vector embeddings (not just keywords)
- Context-aware AI content generation with GPT-4
- Automatic document structure extraction
- Async processing pipeline for scalability
Technical Excellence:
- Modern tech stack (FastAPI, React, TypeScript)
- Clean architecture with service layer pattern
- Comprehensive error handling
- Production-ready deployment with Docker
Real-World Value:
- Solves genuine problem (report writing is time-consuming)
- Complete end-to-end workflow
- Professional UI/UX
- Export to standard formats
This project was developed using Kiro CLI for:
- Code generation and scaffolding
- Debugging and troubleshooting
- Documentation writing
- Architecture planning
See docs/DEVLOG.md for detailed development process.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Dynamous for hosting the Kiro Hackathon
- OpenAI for GPT-4 API
- Sentence Transformers for embedding models
- Qdrant for vector database
- shadcn/ui for beautiful UI components
LIAICHI Mustapha - mustaphaliaichi@gmail.com
Project Link: https://github.com/MuLIAICHI/reportify
Demo Video: Watch on GitHub | Download
If you find this project useful, please consider giving it a star! β
Built with β€οΈ for the Dynamous Kiro Hackathon
Transforming report writing with AI, one document at a time.