Given the visitors that we have in office and outside, there is a need to for an entry management software.
This Entry Management Syetem(EMS) uses a number of open source projects to work properly:
- ReactJS - HTML enhanced for web apps! (FrontEnd/UI)
- Node.js - evented I/O for the backend
- Express - fast node.js network app framework
- MongoDB - database
- AWS - for deployment
- NGINX - web-server in AWS
- NodeMailer - mail service
- WAY2SMS API - sms service
All other dependencies and dev-dependencies are mentioned in packege.JSON.
EMS requires Node.js v4+ to run, NPM(Node Packege Manager) for handling node package, MongoDB to database handling.
1: Clone this Repository
$ git clone https://github.com/Parth910/Entry-Management-System.git
2: Change diractory
$ cd Entry-Management-System
3: Start MongoDB server after installing MongoDB
$ sudo service mongod start
3: Install the dependencies
$ npm install
4: Run build for react build ...
$ npm run build
5: Add you gmail credential in .env file for sending mails by authorised account
EMAIL = "YOUREMAIL",
PASS = "EMAILPASSWORD"
6: Go to link given below and allow "Less secure app access" for above account https://www.google.com/settings/security/lesssecureapps
7: Now you are ready for run Application
$ npm start
You can see this output in Teminal
> [email protected] start /home/tony/assignments/entry_mangement_system
> node server/app.js
--------------------------------------
-------------------
----------
==> App is Running at http://localhost:9000
==> Connected to mongoDB
- UI Structure
- Home Page
- Add Host Page
- Add Visitor/CheckIn Page
- Visitor card Page
- This Home Page includes three Components
- Main Component : It contains two buttons CHECK IN and ADD HOST. from CheckIn you can CheckIn visitor and from addHost you can add new host.
- Visitor Dashboard Component : It contains visitors list in tabular formate which includes Name, Email, Address and Action coloums. from Action you can view visitor card of visitor with checkout option.
- Host Dashboard Component : It contains hosts list in tabular formate which includes Name, Email and Action coloums. from Action you can remove host.
- This contains basic entry form which has Name, Email and Phone fields.
- Host can fill information and be a host !!
- Submit it will redirect to Home Page
- This contains basic Entry form which has Name, Email, Phone, Select Host and Address person want to visit.
- Visitor can fill information and CheckIn !!
- Submit it will redirect to Visitorcard Page
- This contains Visitor Details Card which has Name, Email, Phone, Host and Address.
- It also contains two buttons, Home and CheckOut.
- GET : http://localhost:9000/visitor/
- API for list of visitors.
- GET : http://localhost:9000/visitor/inVisitor
- API for list of visitors whose status is 'In'.
- POST : http://localhost:9000/visitor/addInfo
- API for adding Visitor.
- it also handles send checkout mail and sms to host.
- GET : http://localhost:9000/visitor/:uniqId.
- API for get visitor who has uniqId which is asked in request.
- POST : http://localhost:9000/visitor/:uniqId
- API for checkout visitor with paticular uniqId.
- it also handles send checkout mail to visitor.
- GET : http://localhost:9000/host/
- API for list of hosts.
- GET : http://localhost:9000/host/:id
- API to get host with asking _id.
- POST : http://localhost:9000/host/addHost
- API for adding Host.
- DELETE : http://localhost:9000/host/:id
- API to delete host with asking _id.
name: String,
email: String,
phone:String,
checkInTime:{
type:Date
},
checkOutTime:{
type:Date
},
address:String,
status:String,
uniqId:String,
hostName:{ type: mongoose.Schema.Types.ObjectId, ref: 'host' },
hostEmail:String,
hostPhone:String
name: String,
email: String,
phone: String
- I have deployed this application on Amazon Web Services EC2.
- I have create one instance and deploy this application on that instace.
- Basically I have used nginx server and pm2 for running server on AWS Instance.
- you can visit it at http://ec2-34-229-241-96.compute-1.amazonaws.com/
All required features (Mail and Sms) are working in this deployment. PS : with valid Email and Mobile Number
- Name: Parth Patel
- Phone: +91 6354813121
- Email: [email protected]
- altEmail: [email protected]
- website: Parth910.github.io
ππ First off, thanks for taking the time to contribute! ππ
- To contribute in this you have this application locally.so first install from here.
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- All JavaScript must adhere to JavaScript Standard Style
- Feel free to submit issues and enhancement requests.