https://github.com/aninditaguha98/learning-management-system-serverless-application
This repository is a collaborative work towards creating a serverless application called Learning Management System. This application follows multi-cloud deployment and will implement backend-as-a service architecture.
https://github.com/aninditaguha98/learning-management-system-serverless-application
amazon aws aws-apigateway aws-lex cloud comprehend gcp-cloud-functions k-means-implementation-in-python lambda-functions s3-bucket word-cloud
Last synced: 3 months ago
JSON representation
This repository is a collaborative work towards creating a serverless application called Learning Management System. This application follows multi-cloud deployment and will implement backend-as-a service architecture.
- Host: GitHub
- URL: https://github.com/aninditaguha98/learning-management-system-serverless-application
- Owner: AninditaGuha98
- Created: 2020-07-03T20:27:19.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-10T02:17:24.000Z (over 2 years ago)
- Last Synced: 2025-04-02T22:11:26.496Z (6 months ago)
- Topics: amazon, aws, aws-apigateway, aws-lex, cloud, comprehend, gcp-cloud-functions, k-means-implementation-in-python, lambda-functions, s3-bucket, word-cloud
- Language: Python
- Homepage:
- Size: 21.7 MB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Learning Management System- A multi-cloud serverless applicaton
This repository is a collaborative work towards creating a serverless application called Learning Management System. This application will follow multi-cloud deployment and will implement backend-as-a service architecture. This application has the following features:
Technologies Used
Frameworks/Languages used:
- React
- Node.js
Cloud Services used:
- Amazon Web Services: RDS, Lex, Lambda, S3
- Google Cloud Provider: Cloud Storage, Cloud Function, Cloud AI, GCP Pub/Sub
Modules
User Management Module
1. This module involves the registration page.
2. Details such as email and firstname and last name are being stored in the Firebase.
3. Other details such as the security question and answers are stored in AWS RDS, where the email id serves the primary key.
Authentication Module
1. This module involves the login page.
2. 1st factor authentication involves validating the email and password, by validating them using the google cloud function.
3. 2 FA involves validating the security question/answer using the AWS Lambda function.
Online Support Module
1. This module involves the Lex Chatbot.
2. According to first use case, the user queries basic website navigation information. Branching logic has been added by triggering Lambda function.
3. According to second use case, the Lex bot triggers a lambda function, which will be querying and displaying online users belonging to the same organization.
Data Processing
1. Google Cloud Storage buckets are google encrypted.
2. Files will be uploaded on a the bucket | Name: data_processing_lms | Filename: data_processing_email.txt
3. The docker will be called for processing; which will fetch the filename, take file from S3 and create a word cloud. The wordcloud will be uploaded to S3.
Machine Learning
1. Create K-Means text clustering on JupyterLab available on Google AI Platform.
2. There are 2 approaches which can be followed. One is to create a container and call API for training and testing, another is to train the model on notebook and save the
model on GCS. Then we can use the model to predict the data. The later technique works if the model needs training only once. The former works best for all the ways
Testing
1. Unit testing for all the controllers, api and cloud functions.
2. Integration testing for single-feature plumbing.
3. Testing of the whole application.
4. Testing of I/O data of cloud functions.
5. Security testing.
6. Regression testing
7. System testing
Team Members:
- Anindita Guha
- Devam Shah
- Harsh Patel
References
- Word cloud code: https://www.geeksforgeeks.org/generating-word-cloud-python/
- Google Cloud Storage API: https://googleapis.dev/python/storage/latest/index.html
- K-Means Text clustering: https://pythonprogramminglanguage.com/kmeans-text-clustering/
- Amazon Lex: https://medium.com/velotio-perspectives/amazon-lex-aws-lambda-beyond-hello-world-1403c1825e72
- Lex-React-Integration :https://www.npmjs.com/package/react-lex