A clean, no-nonsense document editor built with Java Spring Boot and React. Create, edit, and download documents as PDFs - no login required!
- Rich Text Editing - Format text with bold, italic, headers, lists, and more
- Auto-save - Your work saves automatically every 2 seconds
- PDF Export - Download any document as a formatted PDF
- Real-time Collaboration - Multiple people can edit the same document
- Responsive Design - Works on desktop, tablet, and mobile
- No Authentication - Jump straight into creating documents
- Java 17+
- Maven 3.6+
- Node.js 16+
# Clone the repository
git clone https://github.com/yourusername/simple-document-editor.git
cd simple-document-editor
# Option 1: Start everything at once (Mac/Linux)
chmod +x *.sh
./start-all.sh
# Option 2: Start manually
# Terminal 1 - Backend
cd backend && mvn spring-boot:run
# Terminal 2 - Frontend
cd frontend && npm install && npm startOpen http://localhost:3000 and start writing!
- Create Document - Click "New Document"
- Start Writing - Use the rich text editor
- Auto-saves - No save button needed!
- Download PDF - Click the "PDF" button
- Share - All documents are public by default
Backend:
- Java 17 + Spring Boot 3.2
- H2 Database (in-memory)
- WebSocket for real-time updates
- iText for PDF generation
Frontend:
- React 18 + React Router
- Quill.js rich text editor
- Axios for API calls
- Modern CSS
simple-document-editor/
├── backend/ # Spring Boot API
│ ├── src/main/java/com/docclone/
│ │ ├── controller/ # REST endpoints
│ │ ├── service/ # Business logic
│ │ ├── model/ # Database entities
│ │ └── repository/ # Data access
│ └── pom.xml
├── frontend/ # React app
│ ├── src/
│ │ ├── components/ # UI components
│ │ └── services/ # API calls
│ └── package.json
└── README.md
GET /api/documents # List all documents
GET /api/documents/:id # Get document
POST /api/documents # Create document
PUT /api/documents/:id # Update document
DELETE /api/documents/:id # Delete document
GET /api/documents/:id/download/pdf # Download as PDF
- Backend runs on http://localhost:8080
- Frontend runs on http://localhost:3000
- H2 console at http://localhost:8080/h2-console
- Build frontend:
npm run build - Package backend:
mvn clean package - Deploy JAR file to your server
- Set environment variables for database
- Fork the repo
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - feel free to use this project however you'd like!
Sometimes you just need a simple document editor without all the complexity:
- ❌ No user accounts to manage
- ❌ No complex permissions
- ❌ No bloated features
- ✅ Just clean, simple document editing
- ✅ PDF export that actually works
- ✅ Real-time collaboration when needed
Perfect for:
- Quick note-taking
- Simple document creation
- Team collaboration
- Learning full-stack development
Made with ☕ and code