An intelligent document generation platform that creates professional Word documents and PowerPoint presentations using AI.
- 🤖 AI-Powered Generation: Uses Google Gemini to generate document outlines and content
- 📄 Multiple Formats: Support for Word (.docx) and PowerPoint (.pptx) documents
- 🎨 Beautiful 3D UI: Modern interface with Three.js visualizations
- ✏️ Interactive Editor: Edit, comment, and provide feedback on generated content
- 🔐 Authentication: Secure user authentication with JWT
- 💾 Project Management: Save and manage multiple document projects
- FastAPI (Python)
- SQLAlchemy (ORM)
- SQLite (Database)
- Google Gemini AI
- JWT Authentication
- React + TypeScript
- Vite
- TailwindCSS
- Three.js (React Three Fiber)
- Framer Motion
- Axios
- Navigate to the backend directory:
cd backend- Install Python dependencies:
pip install -r requirements.txt- Create a
.envfile (copy from.env.example):
cp .env.example .env-
Edit
.envand add your credentials:SECRET_KEY: Generate a random secret key for JWTGEMINI_API_KEY: Get your API key from Google AI Studio
-
Start the backend server:
Windows (PowerShell):
.\start_server.ps1Windows (Batch):
start_server.batMac/Linux:
uvicorn main:app --reloadThe backend will run on http://localhost:8000
- Navigate to the project directory:
cd project- Install Node.js dependencies:
npm install- Start the development server:
npm run devThe frontend will run on http://localhost:5173
- Sign Up / Login: Create an account or login to existing account
- Create Project: Click "New Project" and configure your document
- Generate Outline: Enter a topic and let AI generate an outline
- Edit Outline: Add, remove, or modify sections
- Generate Content: Click "Generate Full Text" to create content for all sections
- Edit & Review: Review generated content, provide feedback, and edit as needed
- Export: Download your document as .docx or .pptx
POST /register- Register new userPOST /token- Login and get access token
GET /projects- List all projectsPOST /projects- Create new projectGET /projects/{id}- Get project detailsDELETE /projects/{id}- Delete projectGET /projects/{id}/export- Export document
POST /sections- Create sectionGET /projects/{id}/sections- Get project sectionsPATCH /sections/{id}- Update sectionDELETE /sections/{id}- Delete section
POST /generate/outline- Generate document outlinePOST /generate/section- Generate section content
SECRET_KEY=your-jwt-secret-key
GEMINI_API_KEY=your-google-gemini-api-keycd backend
uvicorn main:app --reloadcd project
npm run devnpm run typechecknpm run lintThe application uses SQLite for data storage. The database file (app.db) is automatically created in the backend directory on first run.
- Never commit your
.envfile to version control - Use strong, random secret keys in production
- Keep your API keys secure
- Use HTTPS in production
Port already in use:
- Change the port in the start script or kill the process using port 8000
Database errors:
- Delete
app.dband restart to recreate the database
API key errors:
- Verify your Gemini API key is correct and active
CORS errors:
- Ensure backend is running on port 8000
- Check CORS settings in
backend/main.py
Module not found:
- Run
npm installagain
MIT License
Contributions are welcome! Please feel free to submit a Pull Request.