A comprehensive personal productivity application that serves as your digital memory assistant. Track tasks, notes, habits, and daily logs in one beautifully designed interface.
- Task Management - Create, organize, and track tasks with due dates
- Smart Notes - Capture ideas with tagging and search capabilities
- Habit Tracker - Build routines with streak tracking and completion history
- Daily Logs - Reflect on accomplishments, missed items, and tomorrow's plans
- Universal Search - Find anything across all your content instantly
- Dark/Light Theme - Toggle between beautiful color schemes
- Responsive Design - Works perfectly on desktop, tablet, and mobile
- PWA Support - Install as a native app on any device
- Offline Capability - Access your data even without internet
- Smart Daily Recap - AI-powered daily summaries and productivity insights
- Data Export - Backup your data in CSV or JSON format
- RESTful API - Complete API for all operations
- Real-time Updates - Instant synchronization across all components
- Keyboard Shortcuts - Power user navigation and quick actions
- Python 3.8+
- Modern web browser
- (Optional) SQLite for database
-
Clone the repository
git clone https://github.com/yourusername/second-brain.git cd second-brain -
Install dependencies
pip install -r requirements.txt
-
Initialize the database
python database/init_db.py
-
Run the application
python app.py
-
Access the app Open your browser and navigate to
http://localhost:5000
# Using Docker Compose
docker-compose up -d
# Or build manually
docker build -t second-brain .
docker run -p 5000:5000 second-brainsecond_brain/
βββ app.py # Main Flask application
βββ database/
β βββ init_db.py # Database initialization
β βββ schema.sql # Database schema
βββ templates/ # HTML templates
βββ static/
β βββ css/ # Stylesheets
β βββ js/ # Frontend JavaScript
β βββ icons/ # App icons
βββ config.py # Configuration settings
βββ requirements.txt # Python dependencies
- Backend: Flask, SQLAlchemy, SQLite
- Frontend: Vanilla JavaScript, CSS3, HTML5
- Database: SQLite (with PostgreSQL support ready)
- Deployment: Docker, Waitress, Gunicorn
- PWA: Service Workers, Web App Manifest
GET /api/tasks # List all tasks
POST /api/tasks # Create new task
PUT /api/tasks/{id} # Update task
DELETE /api/tasks/{id} # Delete taskGET /api/notes # List all notes
POST /api/notes # Create new note
PUT /api/notes/{id} # Update note
DELETE /api/notes/{id} # Delete noteGET /api/habits # List all habits
POST /api/habits/{id}/complete # Mark habit complete
POST /api/habits/{id}/skip # Skip habit for todayGET /api/logs/today # Get today's log
POST /api/logs # Create today's log
PUT /api/logs/{id} # Update log
DELETE /api/logs/{id} # Delete logSECRET_KEY=your-secret-key-here
DATABASE_URL=sqlite:///second_brain.db
FLASK_ENV=development
PORT=5000The app uses CSS custom properties for easy theming. Edit static/css/style.css:
:root {
--primary-bg: #9ECFD4;
--secondary-bg: #70B2B2;
--accent-primary: #016B61;
/* Add your custom colors */
}- Create database model in
app.py - Add API routes following REST conventions
- Create frontend JavaScript module
- Add template if needed
- Update navigation in
base.html
- Chrome: Click install button in address bar
- Safari: Share β Add to Home Screen
- Firefox: Menu β Install
The app caches essential resources and works offline. Your data syncs when connection is restored.
- All data stored locally in SQLite database
- Optional cloud sync can be implemented
- Full export capabilities for data portability
- Regular CSV/JSON exports recommended
- Database file backed up in
data/directory - No external data sharing
# Using production server
python production.py
# Using Gunicorn (Linux/Mac)
gunicorn -c gunicorn.conf.py app:app
# Using Waitress (Windows)
waitress-serve --port=5000 app:app- Traditional VPS: Use provided deployment scripts
- Docker: Use docker-compose for full stack
- Cloud Platforms: Ready for Heroku, Railway, etc.
- Static Hosting: Can be adapted for static deployment
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Follow PEP 8 for Python code
- Use meaningful variable names
- Comment complex logic
- Update documentation for new features
- First Load: < 2 seconds
- Database Queries: Optimized with indexes
- Frontend: Vanilla JS for minimal bundle size
- Caching: Service worker for static assets
Database errors:
python database/init_db.pyPort already in use:
python app.py --port 5001Static files not loading:
- Check file permissions
- Verify file paths in templates
- Clear browser cache
- Check existing GitHub Issues
- Create a new issue with detailed description
- Include browser console errors if applicable
- Inspired by personal knowledge management systems
- Built with Flask and modern web standards
- Icons from Twemoji and custom designs
- Color palette designed for accessibility
This README provides:
1. **Professional presentation** with badges and screenshots
2. **Comprehensive feature overview**
3. **Easy installation instructions** for different environments
4. **Developer documentation** with API specs and code structure
5. **Deployment guides** for various platforms
6. **Contribution guidelines** for open-source collaboration
7. **Troubleshooting section** for common issues
8. **Customization instructions** for theming and extensions
