TEST (Trainee's Evaluation, Statement and Testimonies) is a comprehensive digital platform for collecting, managing, and analyzing trainee feedback on instructor performance. Built for TESDA Region II, this system streamlines the entire evaluation process with dynamic search, batch management, and powerful reporting tools.
TEST transforms the traditional paper-based evaluation process into a modern, efficient digital experience. Trainees can submit evaluations instantly, administrators gain real-time insights, and trainers receive actionable feedback to improve their performance.
- π Digital Evaluation Forms: Trainees submit ratings and comments with ease
- π Admin Dashboard: Comprehensive overview of all submissions with batch management
- π Trainer Ratings: Performance metrics broken down by qualification
- π Leaderboard: Top performers across all qualifications
- π Advanced Search & Filter: Search by student, trainer, qualification, or date range
- π€ Export to Excel: One-click export of evaluation data
- π Batch Management: Group and analyze evaluations by training batch
- π User Authentication: Secure role-based access for administrators and trainers
- π± Responsive Design: Works on desktop, tablet, and mobile devices
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TEST Evaluation System β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Frontend β β Backend β β Database β β
β β HTML/CSS/JS βββββΊβ Flask βββββΊβ MySQL β β
β β Bootstrap 5 β β β β β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β β β β
β βββββββββββββββββββββΌββββββββββββββββββββ β
β β β
β ββββββββββΌβββββββββ β
β β JSON Backup β β
β β (Fallback) β β
β βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Python 3.7+
- MySQL Server 8.0+
- pip (Python package manager)
git clone https://github.com/imtona44/eval-system.git
cd eval-system# Import the database structure
mysql -u root -p < database_structure.sql
# Or manually create the database
mysql -u root -p
CREATE DATABASE eval;
USE eval;
SOURCE database_structure.sql;Update eval.py with your database credentials:
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'your_password'
app.config['MYSQL_DB'] = 'eval'pip install -r requirements.txtpython eval.pyThe application will be available at http://localhost:5000
-
Access the Evaluation Form
- Open the homepage
- Fill in your personal information
- Select your training batch
-
Complete the Evaluation
- Select the trainer you're evaluating
- Rate each criterion from 1-3:
- 1 = Disagree
- 2 = Agree
- 3 = Very Much Agree
- Add comments (optional)
-
Submit Your Evaluation
- Review your ratings
- Click Submit
- Confirmation message will appear
-
Access the Dashboard
- Login with ADMIN credentials
- View summary statistics
- See recent submissions
-
Manage Evaluations
- View all submissions
- Search and filter results
- Export data to Excel
- Manage training batches
-
Generate Reports
- View trainer performance ratings
- Access qualification-based reports
- Export comprehensive data
-
Login to Your Account
- Use your trainer credentials
- View your personal dashboard
-
Review Feedback
- See evaluation ratings
- Read trainee comments
- Track performance over time
-
Export Your Data
- Download your evaluation results
- Generate reports for self-improvement
eval-system/
βββ eval.py # Main Flask application
βββ requirements.txt # Python dependencies
βββ database_structure.sql # MySQL database schema
βββ README.md # This file
βββ LICENSE # MIT License
β
βββ templates/ # HTML templates
β βββ base.html # Base template with common layout
β βββ index.html # Home page / Evaluation form
β βββ dashboard.html # Admin dashboard
β βββ trainer_dashboard.html # Trainer dashboard
β βββ login.html # Login page
β βββ ratings.html # Trainer ratings view
β βββ leaderboard.html # Top performers leaderboard
β βββ batch_management.html # Batch management interface
β βββ export.html # Export options
β
βββ static/ # Static assets
β βββ styles.css # Custom CSS styles
β βββ images/ # Image assets
β
βββ docs/ # Documentation
β βββ api.md # API documentation
β βββ database.md # Database schema documentation
β βββ deployment.md # Deployment guide
β
βββ tests/ # Test files
βββ test_eval.py # Unit tests
βββ test_api.py # API tests
| Route | Method | Description |
|---|---|---|
/ |
GET | Home page / Evaluation form |
/login |
GET/POST | User authentication |
/logout |
GET | Logout user |
/dashboard |
GET | Admin dashboard |
/trainer-dashboard |
GET | Trainer dashboard |
/submit-evaluation |
POST | Submit trainee evaluation |
/get-evaluations |
GET | Get evaluations with filters |
/get-trainer-ratings |
GET | Get trainer performance ratings |
/get-leaderboard |
GET | Get top performers |
/export-excel |
GET | Export data to Excel |
/manage-batches |
GET/POST | Batch management |
/api/evaluations |
GET | API endpoint for evaluations |
/api/trainers |
GET | API endpoint for trainers |
| Table | Description |
|---|---|
admin_users |
User accounts (admins and trainers) |
sections |
Evaluation sections/categories |
criteria |
Individual evaluation questions |
participants |
Trainee information |
responses_master |
Submission tracking |
responses |
Individual rating responses |
qualifications |
Trainer qualifications |
batches |
Training batch information |
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β admin_users β β participants β β batches β
βββββββββββββββββββ€ βββββββββββββββββββ€ βββββββββββββββββββ€
β id (PK) β β id (PK) β β id (PK) β
β username β β name β β batch_name β
β password β β email β β created_at β
β role β β batch_id (FK) β βββββββββββββββββββ
βββββββββββββββββββ βββββββββββββββββββ
β β
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β responses_ β β responses β
β master β β β
βββββββββββββββββββ€ βββββββββββββββββββ€
β id (PK) βββββββ response_id(FK) β
β trainer_id(FK) β β criteria_id(FK) β
β participant_id β β rating β
β created_at β β comment β
βββββββββββββββββββ βββββββββββββββββββ
| Rating | Description | Interpretation |
|---|---|---|
| 1 | Disagree | Needs Improvement |
| 2 | Agree | Satisfactory |
| 3 | Very Much Agree | Excellent |
| Role | Username | Password |
|---|---|---|
| Administrator | ADMIN | admin123 |
| Trainer 1 | TRAINER1 | trainer123 |
| Trainer 2 | TRAINER2 | trainer123 |
| Trainer 3 | TRAINER3 | trainer123 |
| Trainer 4 | TRAINER4 | trainer123 |
β οΈ Note: Change these default credentials before deploying to production.
pip install -r requirements.txt
python eval.py# Clone repository
git clone https://github.com/yourusername/eval-system.git
cd eval-system
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -r requirements-dev.txt
# Run in development mode
python eval.py --debug# Using Gunicorn (Linux/Mac)
pip install gunicorn
gunicorn -w 4 eval:app
# Using Waitress (Windows)
pip install waitress
waitress-serve --port=5000 eval:app
# Using Nginx + Gunicorn (Production)
# See docs/deployment.md for detailed instructions# Run unit tests
python -m pytest tests/
# Run with coverage
python -m pytest --cov=. tests/
# Run specific test file
python -m pytest tests/test_eval.py| Issue | Solution |
|---|---|
| MySQL connection failed | Check credentials in eval.py |
| Database not found | Run database_structure.sql |
| Port 5000 already in use | Change port: python eval.py --port=5001 |
| Missing dependencies | Run: pip install -r requirements.txt |
| JSON fallback mode | Check MySQL connection, verify database exists |
If MySQL is unavailable, the system automatically falls back to JSON storage:
# Data is saved to data_store.json
# No data loss during database issues# View application logs
tail -f logs/eval.log- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
# Install pre-commit hooks
pip install pre-commit
pre-commit install
# Run linter
flake8 eval.py
# Run formatter
black eval.pyDeveloped for TESDA Region II. See LICENSE for more information.
- π§ Email: region2@tesda.gov.ph
- π Telephone: (078) 846-1618
- π Address: Bldg 1 TESDA Compound, Carig Norte, Tuguegarao, Cagayan
- TESDA Region II - Project sponsor and support
- Bootstrap - Frontend framework
- Font Awesome - Icons
- Community Contributors - Testing and feedback
If you find this project useful, please give it a star on GitHub! β
Built with β€οΈ for TESDA Region II - Empowering Filipino learners through technology.