Skip to content

Instantly share code, notes, and snippets.

@anchetaWern
Last active April 21, 2016 10:55
Show Gist options
  • Save anchetaWern/354df126c87b9631cd27 to your computer and use it in GitHub Desktop.
Save anchetaWern/354df126c87b9631cd27 to your computer and use it in GitHub Desktop.
Attendance System

#Attendance System

Create a web application that allows teachers to easily track the attendance of students. There are 2 types of users that can use the system: admin and teacher

the admin is responsible for:

  • creating teacher account
  • creating students
  • change email and password of his own account
  • logout

the teacher is responsible for:

  • creating a class
  • list classes
  • update a class (update class details, remove or add students)
  • delete a class
  • adding students to the class
  • updating the attendance of students
  • change email and password
  • logout

##Admin the admin should have a built-in account in the database (directly add the account details in phpmyadmin or use a database seeder) the admin can then login using that account. once logged in, the admin can change the email and password of his account. the admin can also create an account for a teacher. Lastly, the admin can create students. He should be able to add the following data for the students: ID number, photo (you need to implement file upload and save the photo in the filesystem and then save the file path in the database), first name, last name, gender, course, year level.

##Teacher first the teacher goes to the admin and asks the admin to create a teacher account. The admin then enters the name, email and a temporary password for the teacher once the account is created the account, the teacher can now login. The first thing that the teacher needs to do is to create a class. The teacher enters the name, description, the # of absences before dropping, the days in which the teacher would meet the class and the time in which the class starts and ends for each meeting day.

Once the teacher has created the class, students can now be added to the class. The teacher can search the students by name, course and year level. When the search button is clicked, all the students that have been returned in the result can be added to the class. But the teacher should also be able to exclude specific students by clicking on a 'remove' button which removes the student from the list of results. Or click an 'add' button to add only specific students from the results. When the 'add to class' button is clicked, the app should add all the students that are currently shown in the results. If at least one student has been marked to be added, it adds that student instead. Once classes has been added, the teacher can then list them. for each class, there should be a link to update the class, to update the attendance, to view students who are marked to be dropped and students who has already been dropped. When accessing the attendance page at any specific time and day, the app should be able to determine which class to display depending on the current day and time. For example, when the teacher added a class with the following details:

  • name: online tech lab COE5 2015
  • days: thursday, friday
  • start time: 05:30pm
  • end time: 07:00pm

Then the teacher accesses the attendance page at 05:00pm on a thursday, it should display: you have no classes at this time. But if the teacher access the attendance page at 05:35pm on a thursday, it should display the online tech lab COE5 2015 class and then list out all the students in that class. The teacher can then call out the names of the students one by one and then if anyone is absent, the teacher can click on the absent button to mark the student as absent. if the student is excused then the excused button is clicked.

After all the names are called, the teacher can then filter the list of students to only display either the excused or absent to verify that the students listed are really absent or excused. Once that's verified, the teacher can click on the update attendance button. this will update the attendance in the database. Updating the attendance should do the following:

  • create a new row in the table for storing the students absences. only the students that are marked as excused or absent are stored in this table.
  • if a student is marked as absent, increment the number of absences of that student by one. If the number of absences becomes equal to the number of absences before dropping setting in the class. the app should mark the student as to be dropped. When a student is marked to be dropped, he/she should be listed in the students to be dropped page for that specific class. The teacher can then view that page so that he knows the students whose class cards needs to be dropped. The teacher then goes to DOSA to drop the class cards. After the class cards has been dropped, the teacher can now mark the students listed in the 'students to be dropped' page as dropped. Those students will then be removed from that list and they will get listed in the students dropped page. The teacher then informs the students to claim their class cards. Once the students gives back their class card to the teacher. The teacher then visits the dropped students page for that class and clicks on the claim button next to the student who gave their class cards back. The absences count resets to zero at this point. Once the student has accumulated the number of absences required for the class card to be dropped, the whole process repeats agin. Note that if the student is excused, the number of absences should not increase.

##Rules & Guidelines

  • Use git to track the changes made to your project. Every member should have their own Github account and the username should be set to their first name and last name (e.g. YohAsakura).
  • Use Github to upload your project. Progress will be checked every week, so there should be a commit uploaded on Github at least once a week.
  • You can use any front-end framework (bootstrap, foundation) to ease the work you need to do with styling the project.
  • Use the Laravel framework to implement the project.
  • You can use any JavaScript or PHP library that can help you to easily implement specific features such as file upload.
  • For each member of the group, provide a list of things done in the project.
  • Project Documentation
    • Brief summary of what the project does
    • Features
    • Database (brief description of the tables and columns used and how are they connected to each other)
    • Libraries used
    • How to use the system
  • The project will be presented by each group.
@Boymexii
Copy link

Nice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment