Skip to content

A simple Entry Management App that automates check-in/check-out of visitors to the Organization.

Notifications You must be signed in to change notification settings

piyush025c/Tracker_Entry_Management_Software

Repository files navigation

Entry Management Software: Tracker

Innovaccer Summergeeks SDE Intern Assignment 2020.

Demo Video


Click here to watch the demo. Note: In the video the SMS is delivered on the same device because mobile number of selected host was the same.

Problem Statement:


To develop a software that manages visitor(guest) entries to places within the organization and correspondingly store the visitor details. The check-in details should be sent to the host via email and SMS along with the time stamp of entry. Similarly, when the visitor leaves the check-out time is noted, and his visit details are sent to him via email.

Approach:


Keeping the requirements in consideration, it is important that the software built not only performs the basic tasks but also is required to be user friendly, else the software is of no use. Given an Organization, the hosts are generally fixed. As a result, instead of taking host information from the guest every time during check-in, we could reduce his effort by registering these hosts beforehand and allowing the guest to just select from the registered hosts from a populated list. Now someone may ask, what if there is a new host that has not been registered yet? Don’t worry, the solution is simple, just keep a separate interface that allows registration of new hosts so that we effectively reduce both the effort a time during check-in. (The host details are stored using firebase real time database under the node “Host”)

Note: All the details entered during host registration, check-in and even check-out are validated using some backend logic.

Now during check-in, the visitor enters his details and selects the host. Since check-in is an essential task, we need to ask the confirmation to the user after he enters all the details. Once the confirmation is done, we store the guest details in the firebase real time data base under the node “VisitorDetail”. However, before doing this we need to set the check-in time. This is done by extracting the time stamp during the time of check-in and correspondingly setting it to the current value. This can be done by creating an instance of Date class in java to not only get the time but also the date! Although, the assignment requirement did not specify the date field, it had to be recorded to ensure the completeness of the app. The check-out time is set to “NA”. After this, the guest check-in details are sent to the host via email (using JavaMailAPI) and SMS (using the SmsManager API).

For check-out, the guest enters his name and based on that matching results are shown using the entered name and checking if the corresponding check-out entry is “NA” with some brief detail. Since, multiple guest can have the same name, we allow the guest to select his check-in entry from the matching results and ask confirmation to check-out. After confirmation, the check-out entry is set using the instance of the Date class. Why add check-out time and set it to “NA” during check-in? This is because this simple addition helps to differentiate guests that have already checked-out and those who have not. So, by checking the check-out field, we can effectively display the matching results.

Use Case Diadram

Technology Stack:


  • Java
  • Android
  • Firebase Realtime Database
  • JavaMail API (For sending emails)
  • SmsManager (For sending SMS)

Key Points:


  • "tracker.pc.239@gmail.com" is the common email id through which the guest and the host receive the emails.
  • Application ID: "com.piyush025.tracker"
  • Min SDK Version: 23
  • Target SDK Version: 28
  • Android Studio Version used: Android Studio 3.5.2

Project Structure:


  • All the java files created are in Android/app/java/com.piyush025.tracker/ and related XML files are in Android/app/res/layout/

    Java Classes and XML

  • All images, icon and XML files for custom views are placed in Android/res/drawable/

    Resources

  • Important .jar files that are used by the JavaMail API are stored in Project/app/libs/

    Jar Files

  • Database structure of Firebase Real time database(Sample):

    db1

    db2

Workflow:


Flow Chart

Project Set Up


  • Navigate to the main page of the repository.
  • Under the repository name, click Clone or download.
  • Download zip: As noted, you can click the Download button to save a zipped archive to you local computer.
  • Extaract the files and open the project folder in Android Studio.

Contact


About

A simple Entry Management App that automates check-in/check-out of visitors to the Organization.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages