# Project Dashboard
 <!-- Add a screenshot later -->
A comprehensive open source desktop application for project management with time tracking, team communication, and meeting coordination features.
## Features
- **User Management**: Multi-role authentication system
- **Task Management**: Create and track projects/tasks
- **Bug Tracking**: Report and monitor software issues
- **Time Tracking**: Log working hours with descriptions
- **Team Chat**: Real-time messaging between users
- **Meeting Scheduling**: Plan and track project meetings
- **Reporting**: Generate Excel reports for all modules
- **Database Sync**: Synchronize between SQLite, MongoDB, and MySQL
## Modules
| Module | Description |
|--------|-------------|
| User Management | Create and manage user accounts with roles |
| Task Management | Track projects and assigned tasks |
| Bug Tracking | Report and monitor software bugs |
| Time Tracking | Log and analyze work hours |
| Team Chat | Communicate with team members |
| Meetings | Schedule and manage project meetings |
| Reports | Generate detailed Excel reports |
## Installation
### Prerequisites
- Python 3.9+
- MongoDB (or MongoDB Atlas)
- MySQL (optional, for sync functionality)
### Setup
1. Clone the repository:
```bash
git clone https://github.com/nikjha/ProjectDashboard.git
cd project-dashboard-
Create and activate virtual environment:
python -m venv .venv source .venv/bin/activate # Linux/Mac .venv\Scripts\activate # Windows
-
Install dependencies:
pip install -r requirements.txt
-
Configure databases:
- Copy
.env.exampleto.envand update credentials - Initialize databases by running
main.pyonce
- Copy
Edit config.py or .env file for:
# MongoDB Configuration
MONGODB_URI=mongodb+srv://username:password@cluster0.abc123.mongodb.net/
MONGODB_DB_NAME=project_dashboard
# MySQL Configuration (for sync)
MYSQL_HOST=localhost
MYSQL_DATABASE=project_dashboard
MYSQL_USER=root
MYSQL_PASSWORD=python main.py-
Install PyInstaller:
pip install pyinstaller
-
Run the build script:
python build.py
-
The executable will be in the
distfolder
Key tables:
users- User accounts and credentialsprojects- Project informationtasks- Task assignmentstime_entries- Tracked work hoursmessages- Chat messagesmeetings- Scheduled meetings
- Default admin credentials:
admin/admin123 - Change password immediately after first login
- Select project/task
- Set start/end times
- Add description
- Submit entry
- Select team member from list
- Type message and press Send
- View conversation history
- Click "Schedule Meeting"
- Set title, time, duration
- Add participants
- Add agenda items
- Save meeting
| Issue | Solution |
|---|---|
| MongoDB connection failed | Verify Atlas IP whitelisting and credentials |
| MySQL sync not working | Check MySQL server is running and credentials |
| Missing styles/icons | Ensure all files are in ui/assets/ and ui/styles/ |
| Module import errors | Reinstall requirements with pip install -r requirements.txt |
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Your Name - nikjha2552@gmail.com
Project Link: https://github.com/nikjha/ProjectDashboard
## Key Elements:
1. **Actual Screenshots**:
2. **Database Schema**:
3. **Video Demo** (Optional):
```markdown
## Demo
-
Roadmap (Optional):
## Roadmap - [x] Core modules implementation - [ ] Mobile companion app - [ ] API for web access - [ ] Advanced analytics dashboard
-
Acknowledgements (Optional):
## Acknowledgements - [PyQt5](https://www.riverbankcomputing.com/software/pyqt/) for the GUI framework - [MongoDB Atlas](https://www.mongodb.com/atlas/database) for cloud database - [PyInstaller](https://www.pyinstaller.org/) for packaging
