Case Study: Certified EOS Platform Built On AWS
What is EOS and what problems does it solve?
EOS stands for Entrepreneurial Operating System which is a process that helps people get the most productivity from their business. Many CEOs have a difficult time understanding issues such as why growth is stagnant or turnover is high in certain departments. The EOS model helps leaders get and stay on the same page when it comes to delivering exceptional products, services, and employee experience.
Know Honesty, a certified EOS implementor needed to quickly development their EOS software, and going over budget was not an option. With that in mind, we were happy to design a solution that will allow
- users to easily log in without having to remember their password
- users to take, review, and download their assessments from their account or email
- for administrators to view the demographics of and test scores of users based on age, gender, occupation, salary, and more with the option to filter and download as to CSV.
We decided to go with AWS Amplify, which is a development platform offered by Amazon Web Services (AWS) that provides a set of tools and services to build scalable and secure cloud-powered mobile and web applications at lower costs and development time.
This application allows users to log in with a 6-digit code using their email address, take personality assessments, and received an email attachment of the graphical PDF assessment once the test is complete. Administrators have exclusive access to the dashboard which shows every user who has taken a test, their scores, and the demographic details. This will allow the client to download the data and visualize it using other tools like Microsoft Excel and Google Sheets since they were able to filter the results and download the data as a CSV file.
The architecture of AWS Amplify consists of several components that work together to provide a seamless development experience.
Using AWS Cloud and React, we were able to build this application very quickly with little hiccups and technical debt, even when we did run into some issues. CI/CD was also implemented to ensure that every change we made was automatically deployed to the staging environment, which was used for demos. We created a separate server for production so that we always have a working product for demos in case anything breaks.
Passwordless Authentication Using Amazon Cognito
Amazon Cognito and Lambda came in handy with our password-less authentication flow. It was quite a challenge getting everything set up due to the learning curve and permissions for user groups. After reading enough documentation, we were able to write a lambda function that sent a challenge code to the user's email and allowed them to enter the code to access their account. This prevents a user from having to remember a password and allows the user full responsibility for their account
Branded PDF reports with jsPDF library
jsPDF is a library that allows you to convert HTML to PDF but we ran into some challenges. We needed to allow users to take the test, get an email attachment of the test, and save it to their account so it can be downloaded at a later time.
AWS restricts the size of strings so using the base64 string was not an option Using S3 increases the budget and scope of the original project PDFs needed to be printed correctly on all modern browsers (mobile and desktop) SVGs needed to be properly displayed in the PDF exactly like it is in the HTML Using the blog output allowed us to keep the file size small while allowing the user to get a high-quality PDF to their email and account home page.
Assessment Email Attachments
We used the Nodemailer library to handle the email attachment of the PDF results from the Lambda function. Amazon SES also provided this feature but it required more steps and added features we didn't need at the time. Nodemailer was perfect because it was lightweight and secure for email attachments.
Downloadable Data To CSV
The table from the admin page allows users to down assessment data by categories such as age, gender, occupation, and income.
We were able to save Know Honesty a ton of and time by delivering a digital product in time for their beta testers. This data will assist employers and organizations in making the proper decisions that will improve employee moral.
- Password-less Authentication Flow
- Downloadable PDFs on mobile (including Safari) and on Desktop
- PDF files attached in an email after the assessment submission
- Bug fixes
- Admin dashboard table with downloadable tests from various users
- Rapid development and delivery
- CSV exports
Enjoying the content?
Learn more about me and get access to exclusive content about software engineering and best business practices.Subscribe