/ITECH-Auto-Attendance

(Only relevant for ITECH students) An application that regularly inscribes school attendance.

Primary LanguageC#MIT LicenseMIT

Auto Attendance

(Only relevant for ITECH students)
An application that regularly inscribes school attendance

About

  • Itech auto attendance is a program which automatically enroll attendance while you are still in bed. dont try to denied it...
  • It could run on your main machine or on a server.
  • The program will try to attendance daily at 9 am and on startup.
  • Here is a full example (keep in mind that by default the browser window will not show)
example.mp4

Installation with docker ⚙️(Recommended for server configuration)

  1. Install docker
  2. Copy the docker-compose.yml and the appsettings.json from this repository to your server.
  3. Configure your appsettings.json. See here how to configure settings. (Keep in mind to set the UseRemoteDriver setting to true)
  4. Start auto attendance by running docker compose up -d in the same directory as the docker-compose.yml. (The argument -d starts the docker compose detached and is optional)

Installation without docker ⚙️

Requirements

  1. .Net 6 runtime installed
  2. Latest version of chrome (needed for selenium)

Installation

  1. Download the project build here. (Or download and build the project yourself)
  2. Configure your appsettings.json. See here how to configure settings.
  3. Run the project by starting the ITECH-Auto-Attendance.exe (In the configuration you can set HideWindow to false to see if the program works as expected)

Configuration

There are some required configurations to be made for this to work.

For editing and following along you can find the config in the appsettings.json.

Properties

  • (Required) Username and Password

    • Your itech login credentials.
    • This is needed for authenticating the user and to enroll attendance.
  • (Required) ClassCouresLink

    • The Link of the Moodle Course where the Attendance is.
  • (Required) AttendanceName

    • The name of the Attandance in the Course.
    • This is needed for selenium to find and the right attendance
    • You can find the Attendance name by viewing the Moodle course and copying the name of the attendance link.

    See example screenshot below...

  • CronExpression (defaults to: "0 0 9 ? * mon-fri")

    • Defines when the program should try to enroll attendance. By default it runs every week day on 9 am.
  • (Required if not in class IT 1j) RangeDatesToAttend (defaults to the IT 1j lessons schedule)

  • HideWindow (defaults to: true)

    • Defines if the browser window should show. By default its hidden.
  • RunOnlyOnce (defaults to: false)

    • Defines if the program should terminate after it had tried to enroll attendance regardless if it was successful or not. By default the program never terminates.
  • RemoteDriverUrl (defaults to: http://selenium:4444)

    • Specifies the remote web driver url. This will be required if you choose to run your program on the server. This setting can be left to the default and will connect to the selenium container created by the docker compose.
  • UseRemoteDriver (defaults to: false)

    • Defines if the program should use a remote web driver. This is also only relevant if you choose to run your program on the server. By default this is set to false.

Notification configuration

If enabled, auto attendance will send you a confirmation email with logs to let you know if it was able to successfully attend or not.

  • Enabled (defaults to: false)

    • Defines if the program should send an email, notifying you the result.
  • (Required if enabled) Email

    • The email address where auto attendance should send the mail to.
  • (Required if enabled) EmailPassword

    • The email password where auto attendance should send the mail to.
  • (Required if enabled) SmtpHost

    • The Smtp host address for the smtp server from the mail above.