Objective:
We are seeing that in current COVID Pandemic all the educational institutions are moving to the digital world and conducting classes thru online media. Not all students are having the luxury of using Laptop / iPad to take the examination. Questions have to be limited to multiple-choice/objective questions and not long written answers or essays.
Solution:
The current solution focused on enabling students to write hand-written answers/essays and then upload the same using their mobiles for further assessment by teachers and professors. The solution enables the educational institutes to convert the handwritten text to machine-readable text and further evaluate it based on keyword search. This could prove a boon to students in remote villages who may not have any other digital tool apart from a basic smartphone and to educational institutes to have frequent assessments to ensure that the remote education is really working. We have built this solution as MVP and it can be extended to a full-fledge application
Flow Diagram
Architecture
Below is the solution design which is Built for MVP this can be extended for production-ready after doing some tweaks in configurations.
User Data Flow:
1: The end user-application in our case, retrieves an identity from Amazon Cognito through cloud front, which offers mobile identity management and data synchronization across mobile devices. Once a mobile user has received an identity, the user is granted access to other AWS services. Exam content stored in the S3 bucket is presented to the end-user using Moodle by using Cloud Front services. The user is hence able to view the questions and additional exam material.
2 & 3: The end-user via the Moodle app uploads his answers- handwritten images via the S3.
4: The moment the user inputs/files are on S3 an SNS notification is triggered.
5: The SNS notification further triggers the Stateful Lambda functions.
6: The Lambda function further triggers the AWS Step functions to make calls to the respective services (Rex, Elastic Search, Dynamo DB& SNS).
7: Lambda call the AWS recognition services to scan the user inputs.
8: It then takes the identified text to find keywords using Elastic search.
9: The keywords are stored in the AWS DynamoDB, and a match against standard keywords is performed (The % of keyword match is the % of marks the person gets).
10: The next step function further conveys the result to end-user using the AWS SNS notification.
11 & 12: The results per test are sent to s3 and aggregated using Amazon QuickSights to be presented on a Dashboard.
Mode of Deployment:
- The deployment of infrastructure services will be done using the Terraform tool.
- Developed code will be deployed and managed by using AWS Code commit and Code pipeline tools.
- We have used ASL and Python language Codes in using LAMBDA & STEP FUNCTIONS.
High Availability & DR Model:
- We are covering the HA by building the services in multiple zones of a region.
- Auto-scaling feature will be taken care for scale up and down based on requests.
Backups:
- The Moodle App will be an AMI from the market place, whose data volumes will be backed up via EBS snapshots (we will select EBS-backed root volumes only).
- Versioning will be enabled at S3 level to serve as backup’s i.e. additional copies.
- Bucket policies can be applied for tiering the data in S3 to Glacier i.e. archive storage for future retrieval if needed.
- My SQL and Dynamo DB backups for long-term retention and Multi-AZ
All the others are managed services and done by AWS.
Conclusion
This Capstone project is a part of Great Learning’s post-graduate program in Cloud Computing. This has helped us (Team) in building practical expertise on various technology stacks and Dev-ops tools like Jenkins, Terraform etc, Managed Services like AWS IAM, S3, Dynamo DB, Lambda, AWS ALB, S3, and cloud watch etc.. We have also learnt the Python language to build Codes for Automation.
The MVP can be further expanded for a much more robust, resilient and user-friendly application.
About Team Wizards:
Working as for Data Fabric CoE @ Capgemini with 17 yrs. of experience delivering business value via a diverse technology stack from applications to infrastructure. Vinayak brings to the table wealth of experience in building ETL solutions for Data-Warehouse, data Lake and cloud platforms using big data stack along with open source tools and technologies like Kubernetes, object store, airflow.
A Cloud CoE Lead/Architect at Techwave | PGPCC | AWS, Google & Oracle Certified | Containers and Kubernetes Enthusiast having 14 + years of hands-on experience in building, configuring, designing Private/Public Cloud and Data Center solutions to address challenging business issues.
An IT Professional working with IBM with more than 16 years of experience on Microsoft SQL Server administration & Infrastructure knowledge like licensing, HA, DR solutions and Auditing. Domain Knowledge on Banking and SAP Applications.
Working as Customer Success Manager ( Solution Architect in Micro Focus R&D India) and has 18+ years of experience in deploying and working with Enterprise System Management products.