A comprehensive productivity and collaboration platform featuring a Flask-based backend and a React frontend. The system provides a unified environment for task management, real-time communication via WebSockets, and daily gamified engagement features.
- Task CRUD: Full Create, Read, Update, and Delete functionality for user-specific tasks.
- Status Tracking: Manage task progress and assign due dates.
- Integrated Timer: Cross-platform Pomodoro timer widget for focus sessions.
- Instant Messaging: Bi-directional communication powered by Socket.IO.
- Private and Group Chats: Direct messaging and multi-user group rooms.
- Dynamic Room Management: Automatic cleanup of inactive rooms via MySQL triggers.
- Daily Wordle: Custom Wordle implementation using a deterministic daily seed.
- Daily Fun Fact: Random educational content pulled from a curated database.
- JWT Authentication: Access control with token expiration and refresh rotation.
- Data Integrity: Regex-based validation and SQLAlchemy relational constraints.
- Theme Management: Persistent Light/Dark mode stored in local storage.
- Language: Python 3
- Framework: Flask
- ORM: Flask-SQLAlchemy (MySQL)
- Real-time I/O: Flask-SocketIO (WebSockets)
- Authentication: Flask-JWT-Extended
- Security: Werkzeug (PBKDF2 hashing)
- Library: React
- Routing: React Router DOM
- Styling: Tailwind CSS
- State Management: React Context API
.
├── app.py # Main application entry point
├── config.py # Environment configuration
├── models.py # SQLAlchemy models (Users, Rooms, Tasks, Messages)
├── socketio_handlers.py # WebSocket event handlers
├── routes/ # Flask Blueprints
│ ├── auth.py # Authentication and JWT
│ ├── tasks.py # Task API endpoints
│ └── wordle.py # Daily game and fun fact logic
└── daily-planner-frontend/ # React frontend
├── src/
│ ├── components/ # UI components
│ ├── context/ # AuthContext
│ ├── pages/ # Route-level components
│ └── App.js # Routing and theme logic
- Python 3.8+
- MySQL Server
Install dependencies:
pip install flask flask-sqlalchemy flask-socketio flask-jwt-extended flask-cors pymysql python-dotenvCreate a .env file:
MYSQL_HOST=localhost
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DB=flask
JWT_SECRET_KEY=your_secret_key
Run the backend:
python app.py- Node.js and npm
Install dependencies:
cd daily-planner-frontend
npm installRun the development server:
npm run devThe backend automatically initializes tables using db.create_all().
A MySQL trigger (after_userroom_delete) ensures database cleanliness by removing Rooms with no associated UserRooms.
Baran Denis-Constantin Epure Roberto-Constantin