A premium, full-stack Task Management System built with Python, Flask, and PostgreSQL. Features real-time updates via WebSockets and advanced analytics using Pandas and NumPy.
- User Authentication: Secure registration, login, and logout.
- Task Management: Full CRUD operations for tasks with title, description, priority, and status.
- Real-time Notifications: Live updates via WebSockets when tasks are added, updated, or deleted.
- Advanced Analytics: Interactive dashboard showing task statistics processed with Pandas/NumPy.
- Premium UI: Clean, responsive design using modern CSS best practices.
- RESTful API: Well-structured API endpoints for all operations.
- Backend: Python, Flask, Flask-SQLAlchemy, Flask-SocketIO
- Database: PostgreSQL (SQLAlchemy ORM)
- Analytics: Pandas, NumPy
- Frontend: HTML5, CSS3 (Vanilla), JavaScript (ES6+)
- Communication: WebSockets (Socket.IO)
- Python 3.8+
- PostgreSQL installed and running (optional, defaults to SQLite)
Clone the repository and navigate to the project directory:
git clone <repository-url>
cd task-managementCreate and activate a virtual environment:
python -m venv venv
# Windows:
venv\Scripts\activate
# Mac/Linux:
source venv/bin/activatepip install -r requirements.txtCopy the .env.example to .env and update your settings:
cp .env.example .envNote: If you want to use PostgreSQL, update the DATABASE_URL in .env.
python app.pyThe app will be available at http://127.0.0.1:5000.
The system uses two main tables:
users: Stores user credentials and profile data.tasks: Stores task details with a foreign key to users.
You can find the raw SQL schema in schema.sql.
GET /api/tasks: Fetch all tasks for the logged-in user.POST /api/tasks: Create a new task.PUT /api/tasks/<id>: Update an existing task.DELETE /api/tasks/<id>: Delete a task.GET /api/analytics: Get processed task statistics.