A Django-based web application to track and manage class attendance for university students. Tired of maintaining records of missed classes for minimum percentage criteria? This attendance tracker is here to help!
- Course Management: Create and manage multiple courses
- Attendance Recording: Record attendance for multiple classes per day
- Attendance Tracking: Track attendance status (Present, Absent, Cancelled)
- Progress Monitoring: View attendance percentage for each course
- Class Details: Track time duration and date for each class
- User-Friendly Interface: Clean and intuitive web interface
- Backend: Django 5.0.7
- Database: SQLite3 (default)
- Frontend: HTML, CSS, Bootstrap (via Django templates)
- Package Management: Pipenv
- Python Version: 3.12
- Python 3.12 or higher
- pip (Python package installer)
- pipenv (recommended) or virtualenv
-
Clone the repository
git clone <repository-url> cd AttendanceTracker
-
Set up virtual environment using Pipenv (Recommended)
pip install pipenv pipenv install pipenv shell
OR using venv
python -m venv attendance_env attendance_env\Scripts\activate # On Windows # source attendance_env/bin/activate # On macOS/Linux pip install django
-
Navigate to the Django project directory
cd attendance_tracker -
Run database migrations
python manage.py makemigrations python manage.py migrate
-
Create a superuser (optional)
python manage.py createsuperuser
-
Start the development server
python manage.py runserver
-
Access the application
Open your web browser and go to:
http://127.0.0.1:8000/
- Navigate to the home page
- Click on "Create Course"
- Enter the course name
- Submit to create the course
- From the home page, click "Submit Attendance"
- Select the number of classes attended (1-6)
- For each class, fill in:
- Course name
- Time duration (format: HH:MM-HH:MM, e.g., 14:45-15:45)
- Attendance status (YES/NO/CANCELLED)
- Submit the attendance records
- Click on any course from the home page
- View detailed attendance records
- See attendance percentage and statistics
AttendanceTracker/
├── Pipfile # Pipenv dependencies
├── Pipfile.lock # Locked dependencies
├── README.md # Project documentation
└── attendance_tracker/ # Django project root
├── manage.py # Django management script
├── db.sqlite3 # SQLite database
├── attendance/ # Main Django app
│ ├── __init__.py
│ ├── admin.py # Admin interface configuration
│ ├── apps.py # App configuration
│ ├── forms.py # Django forms
│ ├── models.py # Database models
│ ├── tests.py # Unit tests
│ ├── urls.py # URL routing
│ ├── views.py # View functions
│ └── migrations/ # Database migrations
├── attendance_tracker/ # Project settings
│ ├── __init__.py
│ ├── asgi.py # ASGI configuration
│ ├── settings.py # Django settings
│ ├── urls.py # Main URL configuration
│ └── wsgi.py # WSGI configuration
├── static/ # Static files (CSS, images)
│ └── css/
└── templates/ # HTML templates
├── base.html
├── course_detail.html
├── create_course.html
├── fill_attendance.html
├── index.html
└── submit_attendance.html
name: Course name (CharField)- Methods:
total_classes(): Returns total number of classesattended_classes(): Returns number of attended classesattendance_percentage(): Calculates attendance percentage
course: Foreign key to Coursedate: Auto-generated date fieldtime_duration: Time duration of the classattended: Choice field (YES/NO/CANCELLED)
/- Home page (course list)/create_course/- Create new course/submit/- Submit attendance form/fill_attendance/<num_classes>/- Fill attendance details/course/<course_id>/- Course detail view
- User authentication and authorization
- Export attendance data to CSV/PDF
- Email notifications for low attendance
- Mobile-responsive design improvements
- Attendance analytics and charts
- Bulk import/export functionality
- Calendar integration
- Attendance reminders
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Create a Pull Request
If you encounter any issues or have questions, please:
- Check the existing issues in the repository
- Create a new issue with detailed information
- Provide steps to reproduce any bugs
- Amulya Jain - Initial work
Happy Tracking! 📈