Skip to content

imtona44/eval-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TEST Evaluation System - Trainee's Evaluation, Statement and Testimonies

Python Flask MySQL Bootstrap License PRs Welcome

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.

πŸ“± Overview

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.

Key Features

  • πŸ“ 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

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    TEST Evaluation System                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚  β”‚   Frontend   β”‚    β”‚   Backend    β”‚    β”‚   Database   β”‚       β”‚
β”‚  β”‚  HTML/CSS/JS │◄──►│   Flask      │◄──►│   MySQL      β”‚       β”‚
β”‚  β”‚  Bootstrap 5 β”‚    β”‚              β”‚    β”‚              β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚         β”‚                   β”‚                   β”‚                β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β”‚
β”‚                             β”‚                                    β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
β”‚                    β”‚   JSON Backup   β”‚                           β”‚
β”‚                    β”‚   (Fallback)    β”‚                           β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                           β”‚
β”‚                                                                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Python 3.7+
  • MySQL Server 8.0+
  • pip (Python package manager)

1. Clone the Repository

git clone https://github.com/imtona44/eval-system.git
cd eval-system

2. Database Setup

# 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;

3. Configure Database Credentials

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'

4. Install Dependencies

pip install -r requirements.txt

5. Run the Application

python eval.py

The application will be available at http://localhost:5000

🎯 Usage Guide

For Trainees

  1. Access the Evaluation Form

    • Open the homepage
    • Fill in your personal information
    • Select your training batch
  2. 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)
  3. Submit Your Evaluation

    • Review your ratings
    • Click Submit
    • Confirmation message will appear

For Administrators

  1. Access the Dashboard

    • Login with ADMIN credentials
    • View summary statistics
    • See recent submissions
  2. Manage Evaluations

    • View all submissions
    • Search and filter results
    • Export data to Excel
    • Manage training batches
  3. Generate Reports

    • View trainer performance ratings
    • Access qualification-based reports
    • Export comprehensive data

For Trainers

  1. Login to Your Account

    • Use your trainer credentials
    • View your personal dashboard
  2. Review Feedback

    • See evaluation ratings
    • Read trainee comments
    • Track performance over time
  3. Export Your Data

    • Download your evaluation results
    • Generate reports for self-improvement

πŸ“ Project Structure

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

πŸ”§ API Endpoints

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

πŸ—„οΈ Database Schema

Core Tables

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

ER Diagram

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   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 Scale

Rating Description Interpretation
1 Disagree Needs Improvement
2 Agree Satisfactory
3 Very Much Agree Excellent

πŸ” Default Login Credentials

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.

πŸ“¦ Installation Options

Standard Installation

pip install -r requirements.txt
python eval.py

Development Installation

# 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

Production Deployment

# 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

πŸ§ͺ Testing

# 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

πŸ› Troubleshooting

Common Issues

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

Database Fallback

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

Logs

# View application logs
tail -f logs/eval.log

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

# Install pre-commit hooks
pip install pre-commit
pre-commit install

# Run linter
flake8 eval.py

# Run formatter
black eval.py

πŸ“„ License

Developed for TESDA Region II. See LICENSE for more information.

πŸ“ž Support

  • πŸ“§ Email: region2@tesda.gov.ph
  • πŸ“ž Telephone: (078) 846-1618
  • πŸ“ Address: Bldg 1 TESDA Compound, Carig Norte, Tuguegarao, Cagayan

πŸ™ Acknowledgments

  • TESDA Region II - Project sponsor and support
  • Bootstrap - Frontend framework
  • Font Awesome - Icons
  • Community Contributors - Testing and feedback

🌟 Star Us

If you find this project useful, please give it a star on GitHub! ⭐


Built with ❀️ for TESDA Region II - Empowering Filipino learners through technology.

About

Digital evaluation platform for trainee feedback, instructor performance analytics, and batch management.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors