Online Attendance System
The Lab Usage Tracker is a Flask-based web application designed for managing lab attendance in educational institutions. It automates the process of student sign-ins/outs and provides administrators with robust tools for user and data management. The application integrates secure authentication, IP mapping, a messaging system, and various administrative functionalities.
- Student Sign-In/Out: Tracks student attendance with lab session logging.
- Admin Dashboard: Manages users, IP mappings, term dates, messages, and data queries.
- IP Mapping: Associates lab locations with IP addresses for accurate tracking.
- Messaging System: Allows admins to post lab-specific announcements.
- Data Management: Queries and downloads attendance data; handles manual sign-in settings.
- Automatic Student Sign-Out: Signs out students automatically at a specified time.
- Feedback System: Users can send feedback or report issues via email.
- QR Code Generation: Creates QR codes for easy lab location access.
- Secure Logging: Maintains detailed logs of application activities.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Python 3.x
- Flask
- Pip (Python package installer)
- Virtual environment (recommended)
- SQLite/PostgreSQL
To set up the project:
-
Clone the repository:
git clone <repository-url>
-
Navigate to the project directory:
cd online-lab-attendance-system -
Set up a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts�ctivate`
-
Install the required dependencies:
pip install -r requirements.txt
-
Initialize and migrate the database:
flask db init flask db migrate flask db upgrade
-
Run the Flask server:
flask run
main.py: Core application setup, routes, and logic.models.py: Database models for users, sign-in data, IP locations, messages, and logs.admin.py: Administrative functionalities and backend logic.
templates: HTML templates for UI rendering.static: CSS and JavaScript files for styling and interactive features.
- User Authentication: Secure login/logout for students and administrators.
- Attendance Tracking: Students can sign in/out of labs, with their attendance time recorded.
- Admin Dashboard: Administrators can manage users, IP mappings, messages, and view logs.
- Data Management: Query and download attendance data, manage term dates, and send emails.
- Message Board: Administrators can post messages for specific lab locations.
- IP Mapping: Associate lab locations with specific IP addresses for accurate tracking.
The application's configuration, including database setup, SMTP settings, and encryption keys, is managed through config.toml.
- Flask: Python web framework.
- SQLAlchemy: ORM for database interactions.
- SQLite/PostgreSQL: Database systems.
- Jinja2: Templating engine.
- WTForms: Form handling.
- Cryptography: Secure token handling and encryption.
- msmtp: Email client for sending notifications and queries.
- Paramiko: SSH interaction for file access.
Listed in requirements.txt, including Flask extensions like Flask-Login, Flask-WTF, Flask-SQLAlchemy, and others for security and functionality.
- Flask-Login: User session management.
- Flask-WTF: Forms and CSRF protection.
- Cryptography: Encryption and secure token management.
- msmtp: Email client for sending notifications and queries.
Developed by LCC-CIT-Lab, this project aims to streamline lab attendance management and ensure secure and efficient operations within educational settings. The system is open-source and welcomes contributions and feedback. Lab Usage Tracker is available under the MIT license. See the LICENSE file for more info.
- GitHub: @LCC-CIT-Lab
- Email: CITLab@lanecc.edu
- Encrypt whole db or L-numbers which ever is easier.