Entry Management App is a web application that can be used at entry-points at several places, partcularly targetting offices where it needs to digitalize their process of maintaining records of visitors and visits. The application keeps the users updated about entry and exit of the visit through text messages and mails.
The App comprises of three types of Users: Managers, Employees/Hosts and Visitors. Managers can create New Hosts by entering their email in the application. The app generates and sends a unique sign-up link to the person [The token used with unique sign-up link is stored as hash using bcrypt in DB]. Once a host successfully signs up in the application, visitors can select one of the host on New Visit page. Any person except people from management can fill the New Visit form which triggers notifications to Hosts on Check-In. The New Visit Form looks for the free slots of the intended Host and indicates error on the New Visit form if tried to book a visit when the host is busy.Check-out of a visit can be done from both Host and Visitor ends. As soon as the visit is checked out, an email is sent to the Visitor informing about all the details of the Visit.
The application backed by Django framework and for its back-end and uses SQLite3 as database to store data. It also makes use of Twilio APIs to send SMS to Hosts of the Visit. The front-end of the application is written in HTML and CSS and uses AJAX calls with forms for auto-completion.
If you just want to do a simple test run of the application, just follow these steps:
- Clone the repository
$ git clone https://github.com/Vibhu-Agarwal/Entry_Management_App.git
- Install dependencies by using the following commands.
$ cd Entry_Management_App
$ pip install -r requirements.txt
$ cd event_manager
-
Get credentials and a trial number Twilio.
-
Make sure 2FA is disabled on your mail account and Less secure app access is turned on.
-
Edit the values of variables in the
set_env_vars
file and save the changes.
export EM_EMAIL_HOST_USER="YOUR_(G)MAIL_ID"
export EM_EMAIL_HOST_PASSWORD="YOUR_(G)MAIL_PASSWORD"
export EM_TWILIO_ACCOUNT_SID="YOUR_TWILIO_ACCOUNT_SID"
export EM_TWILIO_AUTH_TOKEN="YOUR_TWILIO_ACCOUNT_AUTH_TOKEN"
export EM_TWILIO_NUMBER="YOUR_TWILIO_SENDER_NUMBER"
NOTE: If you wish to skip creating TWILIO credentials, set ALLOW_SMS
in settings.py to False
!
`
- After filling out the correct values of the variables, run this to export them.
$ source set_env_vars
- Apply migrations and set up your initial database.
$ python manage.py makemigrations
$ python manage.py migrate
$ python manage.py em_setup
- Finally run the application using
$ python manage.py runserver
Start off by appointing Hosts for your workplace!
Initial Admin email: [email protected]
Initial Admin password: Same as EM_EMAIL_HOST_PASSWORD
value.
Initial Manager email: [email protected]
Initial Manager password: Same as EM_EMAIL_HOST_PASSWORD
value.
Entry_Management_App/
├── event_manager
│ ├── api
│ │ ├── urls.py
│ │ └── views.py
│ ├── event_manager
│ │ ├── settings.py
│ │ └── urls.py
│ ├── management
│ │ ├── forms.py
│ │ ├── mailing.py
│ │ ├── messaging.py
│ │ ├── migrations
│ │ ├── models.py
│ │ ├── serializers.py
│ │ ├── templates
│ │ ├── urls.py
│ │ └── views.py
│ ├── manage.py
│ ├── media
│ │ └── static
│ ├── set_env_vars
│ ├── static
│ │ └── css
│ ├── templates
│ ├── users
│ │ ├── forms.py
│ │ ├── migrations
│ │ ├── models.py
│ │ ├── permissions.py
│ │ ├── serializers.py
│ │ ├── templates
│ │ ├── urls.py
│ │ └── views.py
│ └── visit
│ ├── forms.py
│ ├── migrations
│ ├── models.py
│ ├── serializers.py
│ └── views.py
├── LICENSE
├── README.md
└── requirements.txt
Meeting time Icon by Iconscout Freebies
Podium Icon by Jemis Mali
Schedule Icon by Iconscout Freebies on Iconscout
Email Icon by Promotion King on Iconscout