A comprehensive Flask-based web dashboard for the Academy Attendance System, providing role-based interfaces for students, parents, teachers, and administrators.
- Student Dashboard: View attendance percentage, detailed logs, and announcements
- Parent Dashboard: Monitor child's attendance and stay updated with school communications
- Teacher Dashboard: Manage students, mark attendance, and create announcements
- Admin Dashboard: System-wide management, user administration, and reporting
- β Real-time attendance tracking and display
- π’ Department announcements and updates system
- π Assignment posting with due dates
- π Notice board for urgent communications
- π File attachments for assignments and notices
- π Secure authentication with Flask-Login
- π± Fully responsive design (Bootstrap 5)
- π¨ Modern UI with Bootstrap Icons
- Backend: Flask 3.0.0
- Database: SQLAlchemy with SQLite (development)
- Authentication: Flask-Login
- Forms: Flask-WTF + WTForms
- Frontend: HTML5, CSS3, Bootstrap 5, JavaScript
- Icons: Bootstrap Icons
- Templates: Jinja2
- Python 3.8 or higher
- pip (Python package manager)
- Git (for version control)
git clone <repository-url>
cd "Academy Attendance Portal"# Windows
python -m venv venv
venv\Scripts\activate
# Linux/Mac
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txt# Copy the example environment file
copy .env.example .env
# Edit .env file with your settings
# Update SECRET_KEY, DATABASE_URI, and BACKEND_API_URLpython
>>> from app import create_app, db
>>> app = create_app()
>>> with app.app_context():
... db.create_all()
>>> exit()python run.pyThe application will be available at http://localhost:5000
Academy Attendance Portal/
βββ app/
β βββ __init__.py # Application factory
β βββ models.py # Database models
β βββ forms.py # WTForms definitions
β βββ routes/ # Blueprint routes
β β βββ auth.py # Authentication routes
β β βββ main.py # Main routes
β β βββ student.py # Student dashboard
β β βββ parent.py # Parent dashboard
β β βββ teacher.py # Teacher dashboard
β β βββ admin.py # Admin dashboard
β β βββ announcements.py # Announcements module
β βββ static/ # Static files
β β βββ css/
β β β βββ style.css # Custom styles
β β βββ js/
β β β βββ main.js # JavaScript functions
β β βββ uploads/ # File uploads
β βββ templates/ # HTML templates
β βββ base.html # Base template
β βββ index.html # Home page
β βββ auth/ # Authentication pages
β βββ student/ # Student views
β βββ parent/ # Parent views
β βββ teacher/ # Teacher views
β βββ admin/ # Admin views
β βββ announcements/ # Announcement views
βββ config.py # Configuration settings
βββ run.py # Application entry point
βββ requirements.txt # Python dependencies
βββ .env.example # Environment variables template
- View personal attendance percentage and detailed logs
- Access all announcements, assignments, and notices
- Download attached files
- View department-specific updates
- Monitor child's attendance (linked by student ID)
- View all school communications
- Access assignments and notices
- Download shared files
- View department students
- Mark and manage attendance
- Create announcements, assignments, and notices
- Upload files for students
- Manage own posts
- Full system access
- User management (CRUD operations)
- Department management
- System reports and analytics
- Override permissions
FLASK_APP=run.py
FLASK_ENV=development
SECRET_KEY=your-secret-key-here
DATABASE_URI=sqlite:///attendance.db
BACKEND_API_URL=http://localhost:5001/api
- User: Authentication and profile data
- Department: Organizational units
- Announcement: Posts, assignments, and notices
The dashboard integrates with Team A's backend API for attendance data:
GET /api/attendance/{student_id}- Get attendance summaryGET /api/attendance/{student_id}/logs- Get detailed logs
Update BACKEND_API_URL in .env to point to your backend API.
The dashboard is fully responsive and tested on:
- Desktop (1920x1080, 1366x768)
- Tablet (768x1024, iPad)
- Mobile (375x667, iPhone SE to iPhone 14 Pro Max)
- Bootstrap 5: Modern, responsive design
- Bootstrap Icons: 1500+ icons for clarity
- Custom CSS: Enhanced styling and animations
- Dark Mode Ready: Color scheme supports dark mode
- Print Friendly: Optimized print layouts for reports
- Accessibility: WCAG 2.1 compliant
- Password hashing with Werkzeug
- CSRF protection with Flask-WTF
- Session management with Flask-Login
- File upload validation
- Role-based access control
- SQL injection prevention (SQLAlchemy ORM)
- User registration and login
- Role-based dashboard access
- Attendance data display
- Announcement creation and viewing
- File upload and download
- Responsive design on multiple devices
- Cross-browser compatibility
- β Google Chrome (latest)
- β Mozilla Firefox (latest)
- β Microsoft Edge (latest)
- β Safari (latest)
- Change
FLASK_ENVtoproduction - Use strong
SECRET_KEY - Use PostgreSQL or MySQL instead of SQLite
- Enable HTTPS
- Configure proper WSGI server (Gunicorn, uWSGI)
- Set up reverse proxy (Nginx, Apache)
- Configure file upload limits
- Enable logging and monitoring
# Install Gunicorn
pip install gunicorn
# Run with Gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 run:app
# Configure Nginx reverse proxy
# See deployment documentation for full setupfrom app import create_app, db
from app.models import User, Department
app = create_app()
with app.app_context():
# Create department
dept = Department(name='Computer Science', code='CS', description='CS Department')
db.session.add(dept)
# Create admin user
admin = User(username='admin', email='admin@academy.edu',
full_name='Admin User', role='admin')
admin.set_password('admin123')
db.session.add(admin)
# Create student user
student = User(username='student1', email='student1@academy.edu',
full_name='John Doe', role='student', student_id='CS001',
department_id=1)
student.set_password('student123')
db.session.add(student)
db.session.commit()Issue: Database not found
# Solution: Initialize database
python
>>> from app import create_app, db
>>> app = create_app()
>>> with app.app_context():
... db.create_all()Issue: Module not found errors
# Solution: Reinstall dependencies
pip install -r requirements.txtIssue: Port already in use
# Solution: Change port in run.py or kill process
# Windows: netstat -ano | findstr :5000
# Linux: lsof -ti:5000 | xargs kill -9Team B - Web & Dashboard Development
- UI/UX Design & Implementation
- Flask Backend Development
- Database Design
- API Integration
- Testing & Documentation
This project is part of the Academy Attendance System. All rights reserved.
- Create feature branch:
git checkout -b feature/YourFeature - Commit changes:
git commit -m 'Add YourFeature' - Push to branch:
git push origin feature/YourFeature - Submit pull request
For issues or questions, please contact the development team or create an issue in the repository.
Last Updated: October 30, 2025 Version: 1.0.0 Status: Production Ready β
4d3f718 (Initial commit: Academy Attendance Portal - Web Dashboard)