QuietPage is a privacy-focused journaling and mindfulness application with end-to-end encryption, intelligent streak tracking, and comprehensive analytics. Built with Django REST API and React SPA, featuring an "analog tech" aesthetic for distraction-free writing.
# Clone repository
git clone https://github.com/your-username/QuietPage.git
cd QuietPage
# Install dependencies (Python + Node.js)
make install-dev
# Setup database and create superuser
make setup
# Start development servers (Django + Vite)
make devVisit http://localhost:5173 to access the application.
For detailed setup instructions, see LOCAL_DEVELOPMENT.md.
- 📝 Daily Journaling: Auto-creating daily entries with real-time auto-save (750words.com style)
- 🔒 End-to-End Encryption: Server-side Fernet encryption (AES-128-CBC + HMAC-SHA256) for all entry content
- 😊 Mood Tracking: Record daily mood ratings (1-5 scale) and visualize trends over time
- 📊 Comprehensive Analytics: Heatmaps, mood charts, word count trends, writing patterns, and personal records
- 🔥 Streak Tracking: Timezone-aware consecutive writing day tracking with goal achievements
- 🏷️ Tag System: Flexible tagging with usage analytics and mood correlations
- 📧 Email Notifications: Transactional emails via Resend (welcome, password reset, security notifications)
- 🌙 Dual Themes: Midnight (dark) and Paper (light) with "analog tech" aesthetic
- 🌍 Internationalization: Czech and English language support
- 📱 Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Django: 5.2+ with Django REST Framework
- Python: 3.14 (managed with
uvpackage manager) - Database: PostgreSQL 16 (Production), SQLite (Development)
- Cache & Queue: Redis 7 + Celery for async tasks
- Web Server: Gunicorn (WSGI) behind Nginx (reverse proxy)
- Encryption: Fernet (AES-128-CBC + HMAC-SHA256)
- React: 19.2.0 with TypeScript 5.9.3
- Build Tool: Vite 7.2.4 with HMR
- Styling: Tailwind CSS 3.4.17 with custom design system
- Routing: React Router 7.11.0
- Charts: Recharts 3.6.0
- Icons: Lucide React
- Containerization: Docker + Docker Compose
- Hosting: Railway (PaaS) or self-hosted Docker
- SSL: Let's Encrypt (Certbot)
- CI/CD: Zero-downtime deployment with automatic rollback
✅ Completed Features:
- Full CRUD for journal entries with encryption
- Auto-save functionality (750words.com style)
- Mood tracking and comprehensive analytics
- Streak tracking with timezone awareness
- Tag system with analytics
- User authentication and profile management
- Dashboard with featured entries and statistics
- Responsive design with dual themes (Midnight & Paper)
- Docker deployment with Railway support
- Enhanced data visualizations
- Advanced search and filtering
- Export functionality (PDF, EPUB, Markdown)
- Mobile applications (React Native or PWA)
- Advanced journaling tools (custom prompts, templates)
- Mindfulness features (guided breathing, focus timers)
- Real-time collaboration features (opt-in)
- ML-based sentiment analysis and mood prediction
- Python 3.14+
- pip
- virtualenv (doporučeno)
- Git
-
Naklonujte repozitář
git clone https://github.com/your-username/QuietPage.git cd QuietPage -
Vytvořte a aktivujte virtuální prostředí
python -m venv venv source venv/bin/activate # Na Windows: venv\Scripts\activate
-
Nainstalujte závislosti
pip install -r requirements/development.txt
-
Nastavte proměnné prostředí
Vytvořte soubor
.envv kořenovém adresáři projektu:# Django nastavení SECRET_KEY=your-secret-key-here DJANGO_SETTINGS_MODULE=config.settings.development # Šifrovací klíč pro deníkové záznamy FERNET_KEY_PRIMARY=your-fernet-key-here
Pro vygenerování Fernet klíče použijte:
from cryptography.fernet import Fernet print(Fernet.generate_key().decode())
-
Dokončete setup databáze
Možnost A: Automatický setup (doporučeno)
make setup
Tento příkaz automaticky:
- Aplikuje všechny migrace
- Vytvoří cache tabulku
- Vytvoří superuživatelský účet
Možnost B: Manuální setup (krok po kroku)
a) Aplikujte migrace databáze
python manage.py migrate
b) Vytvořte cache tabulku
⚠️ DŮLEŽITÉProjekt používá databázovou cache, která vyžaduje vytvoření speciální tabulky:
python manage.py createcachetable # nebo: make cacheTento krok je povinný - bez něj nebude cache fungovat správně a můžete narazit na chyby.
c) Vytvořte superuživatele (admin účet)
python manage.py createsuperuser # nebo: make superuser -
Spusťte vývojový server
python manage.py runserver # nebo: make run -
Otevřete aplikaci v prohlížeči
Přejděte na: http://127.0.0.1:8000/
# Backend commands
make run # Start Django dev server only
make test # Run backend tests
make shell # Django interactive shell
make migrate # Apply database migrations
make makemigrations # Create new migrations
# Frontend commands
cd frontend
npm run dev # Start Vite dev server only
npm run build # Production build
npm run test # Run frontend tests
npm run lint # ESLint
# Full stack development
make dev-full # Start Redis + Django + Vite + Celery
make celery-worker # Start Celery worker only
make celery-beat # Start Celery beat scheduler only
# Testing with coverage
uv run pytest --cov=apps --cov-report=htmlPoznámka: Pro podrobné informace o vývoji, testování a deployment viz dokumentaci v
docs/:
- LOCAL_DEVELOPMENT.md - Development workflow
- TESTING.md - Testing guidelines
- ARCHITECTURE.md - System architecture
QuietPage includes comprehensive documentation for developers:
- ARCHITECTURE.md - Complete system architecture overview
- API.md - REST API endpoints documentation
- DATABASE.md - Database schema and relationships
- EMAIL_BACKEND.md - Email backend configuration and usage
- LOCAL_DEVELOPMENT.md - Development environment setup
- DOCKER_DEPLOYMENT.md - Self-hosted Docker deployment
- RAILWAY_DEPLOYMENT.md - Railway PaaS deployment
- SECURITY_CHECKLIST.md - Security best practices
- TESTING.md - Testing strategy and guidelines
- CLAUDE.md - AI assistant integration guide
- styles.md - Design system and UI guidelines
The docs/plans/ directory contains dated implementation plans for major features:
- Design documents (UX specifications)
- Implementation guides (step-by-step execution)
- Provide a calm and intuitive platform for journaling and self-reflection.
- Help users track their emotions and build mindful habits.
- Continuously evolve based on user feedback.
Contributions, feedback, and ideas are welcome! Stay tuned for updates and the official release. 🌟