A professional, open-source project management application featuring advanced facial recognition-based authentication, real-time collaboration tools, and comprehensive project tracking capabilities.
🌟 This project is public and open for contributions! We welcome developers of all skill levels to contribute, learn, and grow together.
- Live Demo (Deploy your own instance)
- Documentation
- Deployment Guide
- Contributing Guidelines
- Issue Tracker
- Features
- System Requirements
- Installation
- Configuration
- Usage
- Architecture
- Security
- Troubleshooting
- License
- Project Management: Create, manage, and track projects with comprehensive workflows
- Team Collaboration: Manage team members, assign tasks, and track progress in real-time
- User Management: Role-based access control with multiple permission levels
- Task Tracking: Create, assign, and monitor project tasks with status updates
- Activity Logging: Track all user actions and system events
- Reporting: Generate detailed reports on project metrics and team performance
- Facial ID Authentication: Biometric-grade facial recognition login
- Tolerance: 0.4 (strict matching)
- Minimum confidence: 50%
- Prevention of false positives from unknown faces
- Two-Factor Authentication: Session-based 2FA verification
- CSRF Protection: Cross-Site Request Forgery prevention on all forms
- Password Security: Bcrypt hashing with salt for all user passwords
- Encrypted Storage: Sensitive data encrypted at rest
- Session Management: Secure Flask-Login integration with persistent sessions
- Rate Limiting: Protection against brute force attacks
- Security Headers: Best-practice HTTP security headers
-
Facial Recognition Infrastructure:
- HOG (Histogram of Oriented Gradients) face detection
- CNN (Convolutional Neural Network) 128-dimensional face encoding
- Euclidean distance-based face matching
- Biometric-grade matching tolerance
- Multi-angle face enrollment
-
Admin Dashboard:
- Real-time statistics and key metrics
- Activity monitoring and audit logs
- System health indicators
- User management interface
- Quick action buttons
-
Professional User Interface:
- Responsive design for all devices
- Modern interface with smooth animations
- Mobile-friendly layouts
- Accessibility compliance
- Python 3.8 or higher
- Flask 2.0 or higher
- SQLite3 (default database)
- Modern web browser with camera support (for facial authentication)
- Minimum 100MB disk space for application
- 2GB RAM recommended for optimal performance
See requirements.txt for complete list. Key packages:
- Flask: Web framework
- SQLAlchemy: Database ORM
- Flask-Login: User session management
- face_recognition: Facial recognition library
- dlib: Face detection and encoding
- OpenCV: Image processing
# Clone and run with Docker Compose
git clone https://github.com/xploitoverload/project-management.git
cd project-management
docker-compose up -dAccess at http://localhost:8000
# 1. Clone Repository
git clone https://github.com/xploitoverload/project-management.git
cd project-management
# 2. Create Virtual Environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# 3. Install Dependencies
pip install -r requirements.txtCopy and configure environment template:
cp .env.example .envEdit .env with your settings:
FLASK_ENV=development
SECRET_KEY=your-secure-secret-key-change-this
DATABASE_URL=sqlite:///app.db
ADMIN_TOKEN=your-secure-admin-token
UPLOAD_FOLDER=uploads
MAX_CONTENT_LENGTH=16777216
SESSION_TIMEOUT=1800
FACIAL_VERIFICATION_TOLERANCE=0.4
FACIAL_VERIFICATION_MIN_CONFIDENCE=0.5python3
>>> from app import create_app, db
>>> app = create_app()
>>> with app.app_context():
... db.create_all()
>>> exit()python3 app.pyAccess at https://127.0.0.1:5000
Default credentials:
- Username:
admin - Password:
admin(Change on first login)
Key settings in .env:
| Variable | Default | Description |
|---|---|---|
| FLASK_ENV | development | Environment mode (development/production) |
| SECRET_KEY | - | Secret key for session encryption (REQUIRED) |
| DATABASE_URL | sqlite:///app.db | Database connection string |
| ADMIN_TOKEN | - | Secure token for admin panel access |
| SESSION_TIMEOUT | 1800 | Session timeout in seconds (30 minutes) |
| FACIAL_VERIFICATION_TOLERANCE | 0.4 | Face matching tolerance (lower = stricter) |
| FACIAL_VERIFICATION_MIN_CONFIDENCE | 0.5 | Minimum confidence score (0.0-1.0) |
| UPLOAD_FOLDER | uploads | Directory for file uploads |
| MAX_CONTENT_LENGTH | 16777216 | Maximum upload size in bytes (16MB) |
Edit config.py for advanced settings:
class DevelopmentConfig:
DEBUG = True
TESTING = False
SQLALCHEMY_ECHO = True
FACIAL_ENCODING_TOLERANCE = 0.4
FACIAL_CONFIDENCE_THRESHOLD = 0.5- Open
https://127.0.0.1:5000/login - Enter username and password
- Click "Sign In"
- Complete any required verification
- Open login page
- Click "Sign in with Facial ID"
- Allow camera access when prompted
- Position face in the guide oval
- Click "Verify"
- System authenticates if face matches
- Automatically redirected to dashboard
- Log in with credentials
- Navigate to "Security Settings"
- Click "Enroll Facial ID"
- Capture 3 different face angles:
- Full frontal view
- 30-degree right angle
- 30-degree left angle
- System stores encrypted face encodings
- Facial ID ready for authentication
After login, dashboard displays:
- Overview: Key metrics and statistics
- Projects: List and manage all projects
- Teams: Manage members and permissions
- Tasks: Create and assign tasks
- Users: User account administration
- Activity Log: System activity history
- Settings: Configure system preferences
Backend
- Flask: Python web framework
- SQLAlchemy: Database ORM
- Flask-Login: User session and authentication
- Flask-WTF: Forms and CSRF protection
- Werkzeug: Security utilities
Machine Learning
- face_recognition: Facial recognition library
- dlib: Face detection and CNN encoding
- OpenCV: Image processing and manipulation
- NumPy: Numerical computations
Frontend
- HTML5: Semantic markup
- CSS3: Responsive styling
- JavaScript: Interactive features and camera capture
- Canvas API: Image processing in browser
Database
- SQLite: Default lightweight database
- SQLAlchemy ORM: Database abstraction layer
project-management-facial-id/
├── app/
│ ├── __init__.py Application initialization
│ ├── models.py Database models
│ ├── admin_secure/
│ │ ├── routes.py Admin endpoints and views
│ │ ├── auth.py Authentication logic
│ │ ├── facial_recognition.py Facial ID system
│ │ └── decorators.py Custom route decorators
│ ├── static/
│ │ ├── css/ Stylesheets
│ │ ├── js/ JavaScript files
│ │ └── images/ Static images
│ └── templates/
│ ├── login.html Login page
│ ├── dashboard.html Admin dashboard
│ └── ... Additional templates
├── app.py Application entry point
├── config.py Configuration settings
├── requirements.txt Python dependencies
├── .env.example Environment template
├── .gitignore Git ignore rules
├── README.md This documentation
└── LICENSE MIT License
The facial authentication system uses machine learning:
- Detection: HOG cascade identifies faces in image
- Encoding: CNN converts face to 128-dimensional vector
- Comparison: Calculates Euclidean distance between vectors
- Scoring: Converts distance to confidence percentage
- Validation:
- Distance check: <= 0.4 (strict tolerance)
- Confidence check: >= 50% (minimum threshold)
- Authentication: User authenticated if both conditions pass
Security Implementation:
- Tolerance 0.4 prevents false positives from unknown faces
- 50% confidence minimum ensures only strong matches
- Biometric-grade security suitable for admin access
- Failed attempts tracked and logged for security audit
- User ID, Username, Email (unique)
- Password (bcrypt hashed)
- Role (admin, super_admin, developer, designer)
- Permissions (JSON array)
- Timestamps (created, last_login)
- Facial ID, Admin ID (foreign key)
- Facial encoding (encrypted 128D vector)
- Encoding label (e.g., "home", "office")
- Verification status
- Success/failure counters
- Timestamp tracking
- Device and camera information
- Project ID, Name, Description
- Owner (foreign key to User)
- Status, Priority
- Created/updated timestamps
- Task ID, Project ID (foreign key)
- Title, Description, Status
- Assigned to (foreign key)
- Due date, Priority
- Timestamps
- Facial ID uses 0.4 tolerance (industry standard)
- 50% confidence threshold prevents false matches
- Failed authentication attempts logged
- Account lockout after 5 failed attempts
- Bcrypt hashing with salt
- Minimum password requirements
- Secure password reset via email
- Password change on first login
- Database credentials in environment variables
- Sensitive data encrypted at rest
- HTTPS/TLS for data in transit
- CSRF tokens on all forms
- Input validation and sanitization
- SQL injection prevention via ORM
- Secure cookies (HttpOnly, SameSite)
- Configurable timeout (default 30 minutes)
- Session invalidation on logout
- Concurrent session limits for admin accounts
- Regular security updates of dependencies
- Security headers (HSTS, CSP, X-Frame-Options)
- Rate limiting on authentication endpoints
- Audit logging of sensitive operations
- Regular database backups
- Code review before deployment
export FLASK_ENV=development
export FLASK_DEBUG=1
python3 app.pyFollow PEP 8 guidelines. Format code with Black:
pip install black
black app/pip install pytest
pytest tests/Supported Platforms:
- Render - Free tier, automatic HTTPS, Redis included
- Heroku - Free dyno hours, easy setup
- Railway - Modern platform, generous free tier
- DigitalOcean App Platform - $5/month, excellent performance
- Docker - Self-hosted, complete control
- AWS/GCP/Azure - Enterprise deployment
For detailed deployment instructions, see DEPLOYMENT.md.
# Using Gunicorn
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app# Build image
docker build -t project-management:latest .
# Run container
docker run -d -p 8000:8000 \
-e FLASK_ENV=production \
-e SECRET_KEY=your-secret-key \
project-management:latestContributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create feature branch:
git checkout -b feature/your-feature - Commit changes:
git commit -m 'Add feature' - Push to branch:
git push origin feature/your-feature - Open Pull Request
Face Not Detected
- Ensure adequate lighting (natural light preferred)
- Position face directly facing camera
- Ensure face occupies most of frame
- Check camera is not obstructed
- Try in well-lit area
Face Not Recognized
- Re-enroll facial ID with multiple angles
- Ensure consistent lighting with original enrollment
- Remove accessories obscuring face
- Try again if first attempt fails
- Check camera resolution and quality
Camera Permission Denied
- Check browser camera permissions
- Allow camera access in security settings
- Use HTTPS (required for camera)
- Try different browser
- Check system camera permissions
Database Locked
rm app.db
python3 -c "from app import create_app, db; app = create_app(); db.create_all()"Connection Error
- Check DATABASE_URL in .env
- Verify database file exists
- Check file permissions
- Ensure database is not corrupted
Port Already in Use
lsof -i :5000 # Find process
kill -9 <PID> # Kill processSSL Certificate Error
- Application uses self-signed certificates for development
- Add exception in browser or disable SSL verification in development
Contributions welcome. To contribute:
- Fork the repository
- Create feature branch:
git checkout -b feature/your-feature - Commit changes:
git commit -m 'Add feature' - Push to branch:
git push origin feature/your-feature - Open Pull Request
This project is licensed under the MIT License. See LICENSE file for details.
For issues and questions:
- Open a GitHub issue
- Check existing documentation
- Review troubleshooting section
- Initial release with facial ID authentication
- Project management system
- Admin dashboard and team collaboration
- Complete security implementation
- Professional UI and user experience
Last Updated: February 8, 2026