Dev Technology’s Research & Development team recently kicked off an internal development project to modernize our company’s sign-in book for guests. As a secure facility, it is important to track who comes and goes at both our Reston and DC offices. For years we used a simple paper ledger to track visitor names, when they came and left, and why they were visiting. We decided it was time to get a little more high tech and began developing eSignInBook using AngularJS, MongoDB, Docker. Since we wanted to leverage Infrastructure as a Service (IaaS), we also used Amazon Web Services (AWS). eSignInBook would be run on iPad or Android tablets at the front of our offices, it would need to be able to automatically produce a daily visitor report and send it to our security group as well as ensure that all PII was encrypted at rest.
After deciding on the basic architecture we got to work on design. Since the paper ledger we had been using captured all the necessary information, we figured it would be a good starting point for the design. Our development team, lead by Sean Moon, began building out the UI and functionality based on these requirements, and after two days we were ready to review it for our stakeholders. We got some great feedback from our stakeholders and began another iteration of development and testing. We used a lot of the same agile development techniques we use on larger projects, but scaled for this particular project since there is no reason to use a heavy process to manage and develop a small application. The lightweight agile approach was similar to how we worked on the prototype for 18F where communication and frequent checkpoints within the development team and with our stakeholders were key to make sure the project moved along rapidly and we could get a minimal viable product to production quickly.
We had one of Dev Technology’s DevOps engineers, Larry, set up two AWS EC2 instances—one to run the node server and the other to run the MongoDB database instance. Additionally, he configured an AWS S3 instances to run the client code and to run the scheduler that will email daily reports to our security team for archiving.
Our team developed the application so fast that our first real roadblock came in the form of a lack of tablets and hardware to mount them in our offices. In fact, we’re still waiting on the mounting hardware as of my completion of this post.
The eSignInBook’s code is open source, under the MIT license, and available in our public GitHub repository. Feel free to pull the code, play around with it, or use it. Email us if you like it or have any suggestions.