# TODO

- **Celery**:
  - Using celery to send emails
- **Add and Drop**:
  - The add and drop page should only include courses offered by the department head.
  - Add and drop date should be restricted by the school calendar.
- **Auto generate username and password when adding students and lecturers**
  - Instead of filling the username and password for the student/lecturer, the system should automatically generate them and send to the student's/lecturer's email.
- **Payment integration**:
  - Integrating PayPal and Stripe for students to pay their fees.
- **Integrate the dashboard with dynamic/live data**:
  - Overall attendance
  - School demographics
      - Lecturer qualification
      - Students' level
  - Students average grade per course:
    This helps to keep track of students' performance
  - Overall Course Resources
    - Total number of videos, courses, documentation
  - Event calendar:
    - A calendar that shows upcoming events
  - Enrollments per course
    - How many students enroll in each course
  - Website traffic over a specific user type (Admin, Student, Lecturer, etc.)
- **Apply Filtering for all tables**:
  - This can be done using `django-filter` and other jQuery libraries
- **Apply data exporting for all tables**:
  - This can be done using jQuery libraries like `DataTables`
- **Using a template to PDF converter to generate reports**:
  - This can be done using the popular package `xhtml2pdf`
