piyush025c / Tracker_Entry_Management_Software

A simple Entry Management App that automates check-in/check-out of visitors to the Organization.
1 stars 0 forks source link
android firebase-realtime-database java javamail-android smsmanager xml

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:


Key Points:


Project Structure:


Workflow:


Flow Chart

Project Set Up


Contact