/Entry_Management_App

A web application for an organization to manage entry records of visitors

Primary LanguageCSSGNU General Public License v3.0GPL-3.0

Entry Management App

Open Issues Forks Stars Maintained Made with Django Open Source Love Built with Love

Index

About

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.

Workflow

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.

Tech Stack Used

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.

Usage

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: superuser@emweb.in
Initial Admin password: Same as EM_EMAIL_HOST_PASSWORD value.
Initial Manager email: manageruser@emweb.in
Initial Manager password: Same as EM_EMAIL_HOST_PASSWORD value.

File Structure

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

Gallery

Credit/Acknowledgment

Contributors

License

License

Icons

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