Android only App (not iOS) with cloud-based database to sync all data offline which is linked to the school(s) associated with user who's logged in (all schools for admins and super users).
Manages multiple schools, each school with one or more teachers, each teacher teachers one or more classes, each class contains multiple pupils, each pupil has an attendance record linked to each class they're enrolled in.
You will setup the online database account, and give us admin permissions. You will relinquish all code and database schema to use once the project has been completed. We have no preference over the database engine, but it must be well-known and modern.
=== Screens ===
1. Teacher registration to capture name fields (mandatory), username (mandatory), password (mandatory), schools taught at (at least one mandatory), other fields (non-mandatory)
2. Login for users (admin, super users, head teachers, teachers)
3. Main screen showing buttons: "Take Register" (Goes to "Take Register" screen), "Enrol Pupils" (Goes to "Pupil Enrolment to Class" screen), "Setup" (Goes to "Setup" screen)
4. Class setup: For the teacher logged in, view classes for the schools they're linked to, and Add, Edit, Delete (only permitted if no linked records)
5. Pupil Enrolment to Class: Default to logged-in teacher's school if only linked to one else allow selection. Add, Edit, Delete Pupils (see fields below)
6. Take Register: Logs Pupil Attendance in Class, default to logged-in teacher's school if only linked to one else allow selection, default to logged-in teacher's class if only linked to one, else allow selection. Shows all Pupils linked to that class. Each pupil defaults to Attended by showing a Tick. Tapping the Tick rotates through the other statuses showing a Cross icon for Absent, a calendar icon for Leave, a Sick emoji face icon for Sick.
7. Setup: Buttons for User permissions (if CanAddTeachers = True for logged in user), Classes setup
8. Users setup: (if CanAddTeachers = True for logged in user, or Admin, or Superuser): Add users, (Admin and Superuser access only): View, Edit, Delete Add, Edit, Delete users.
9. Reports: See Reports section below
10. Other screens to support setup, editing records etc.
=== Database Tables ===
Schools: School Name, address, website, email, telephone
Link Schools Teachers (many many): LinkID, TeacherID, SchoolID, DateStarted (Date, optional), DateEnded (Date, optional), CanSubForOtherTeachers (Boolean)
Teachers: First name, Last name, username, password, address, website, email, telephone, CanEnrolPupils (Boolean), CanAddTeachers (Boolean)
Classes: ClassID, Grade (numeric: 1-7)
Link Teachers to Classes: LinkID, TeacherID, ClassID
Pupils: Name, Sex, DOB (Hidden fields for future use: Address, Telephone, Email)
Link Pupils to Classes: LinkID, PupilID, ClassID
Attendance Statuses: (lookup): AttendanceStatusID (tinyint), Attendance Status (initial values: 1 = "Attended", 0 = "Absent", 2 = "Leave", 3 = "Sick")
Link Pupils to Classes / Attendance (for Take Register Screen): AttendanceID, PupilID, ClassID, AttendanceStatusID
=== Additional Feature ===
Other teacher (user) allowed to login and take register for teachers at the same school if they have CanAddTeachers = True
Pupil records to show stars based on contiguous weekday attendance of each 2 weeks, calculated from start of turn
=== Reports ===
1. Single report on number of total attendances, number and % of attendances at each status, can be filtered by school, date range (defaults to start of current month to today), class, grade, all teachers OR specific teacher OR original teachers only OR substitute teachers only, pupil, . Teachers can only run the report for their own classes.
2. Pupils stars count, for those pupils who have stars, filterable by school, grade
Dominic T.0% (0)
Login to your account and send a proposal now to get this project.Log in
Clarification Board Ask a Question
Thanks for inviting us and sharing the detailed requirement. I have reviewed it and assumed it would cost more than 900GBP, Are you flexible with the cost/budget?
What is the estimated time for finishing the job?