{"id":24156494,"url":"https://github.com/aninditaguha98/learning-management-system-serverless-application","last_synced_at":"2025-07-20T09:05:15.308Z","repository":{"id":38766919,"uuid":"276981975","full_name":"AninditaGuha98/Learning-Management-System-serverless-application","owner":"AninditaGuha98","description":"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.","archived":false,"fork":false,"pushed_at":"2023-01-10T02:17:24.000Z","size":22790,"stargazers_count":7,"open_issues_count":23,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T22:11:26.496Z","etag":null,"topics":["amazon","aws","aws-apigateway","aws-lex","cloud","comprehend","gcp-cloud-functions","k-means-implementation-in-python","lambda-functions","s3-bucket","word-cloud"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AninditaGuha98.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-03T20:27:19.000Z","updated_at":"2025-01-29T12:26:28.000Z","dependencies_parsed_at":"2023-02-08T16:45:45.082Z","dependency_job_id":null,"html_url":"https://github.com/AninditaGuha98/Learning-Management-System-serverless-application","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AninditaGuha98/Learning-Management-System-serverless-application","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AninditaGuha98%2FLearning-Management-System-serverless-application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AninditaGuha98%2FLearning-Management-System-serverless-application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AninditaGuha98%2FLearning-Management-System-serverless-application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AninditaGuha98%2FLearning-Management-System-serverless-application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AninditaGuha98","download_url":"https://codeload.github.com/AninditaGuha98/Learning-Management-System-serverless-application/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AninditaGuha98%2FLearning-Management-System-serverless-application/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261335388,"owners_count":23143509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon","aws","aws-apigateway","aws-lex","cloud","comprehend","gcp-cloud-functions","k-means-implementation-in-python","lambda-functions","s3-bucket","word-cloud"],"created_at":"2025-01-12T13:17:27.364Z","updated_at":"2025-06-22T17:35:49.986Z","avatar_url":"https://github.com/AninditaGuha98.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eLearning Management System- A multi-cloud serverless applicaton\u003c/h1\u003e\n\n\n\u003cp\u003eThis 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:\u003c/p\u003e\n \n\u003ch3\u003eTechnologies Used\u003c/h3\u003e\n\u003cp\u003eFrameworks/Languages used:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e React \u003c/li\u003e\n\u003cli\u003e Node.js \u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCloud Services used:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAmazon Web Services: RDS, Lex, Lambda, S3\u003c/li\u003e\n\u003cli\u003eGoogle Cloud Provider: Cloud Storage, Cloud Function, Cloud AI, GCP Pub/Sub\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eModules\u003c/h2\u003e\n\n\u003ci\u003e\u003cp\u003eUser Management Module\u003c/p\u003e\u003c/i\u003e\n\u003cp\u003e1. This module involves the registration page.\u003c/p\u003e\n\u003cp\u003e2. Details such as email and firstname and last name are being stored in the Firebase.\u003c/p\u003e\n\u003cp\u003e3. Other details such as the security question and answers are stored in AWS RDS, where the email id serves the primary key.\u003c/p\u003e\n\n\u003ci\u003e\u003cp\u003eAuthentication Module\u003c/p\u003e\u003c/i\u003e\n\u003cp\u003e1. This module involves the login page.\u003c/p\u003e\n\u003cp\u003e2. 1st factor authentication involves validating the email and password, by validating them using the google cloud function.\u003c/p\u003e\n\u003cp\u003e3. 2 FA involves validating the security question/answer using the AWS Lambda function.\u003c/p\u003e  \n\n\u003ci\u003e\u003cp\u003eOnline Support Module\u003c/p\u003e\u003c/i\u003e\n\u003cp\u003e1. This module involves the Lex Chatbot.\u003c/p\u003e\n\u003cp\u003e2. According to first use case, the user queries basic website navigation information. Branching logic has been added by triggering Lambda function.\u003c/p\u003e\n\u003cp\u003e3. 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.\u003c/p\u003e  \n  \n\u003ci\u003e\u003cp\u003eData Processing\u003c/p\u003e\u003c/i\u003e\n\u003cp\u003e1. Google Cloud Storage buckets are google encrypted.\u003c/p\u003e\n\u003cp\u003e2. Files will be uploaded on a the bucket | Name: data_processing_lms | Filename: data_processing_email.txt\u003c/p\u003e\n\u003cp\u003e3. 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. \u003c/p\u003e\n\n\u003ci\u003e\u003cp\u003eMachine Learning\u003c/p\u003e\u003c/i\u003e\n\u003cp\u003e1. Create K-Means text clustering on JupyterLab available on Google AI Platform.\u003c/p\u003e\n\u003cp\u003e2. 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\n  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\u003c/p\u003e\n\n \n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cp\u003e1. Unit testing for all the controllers, api and cloud functions.\u003c/p\u003e\n\u003cp\u003e2. Integration testing for single-feature plumbing.\u003c/p\u003e\n\u003cp\u003e3. Testing of the whole application.\u003c/p\u003e\n\u003cp\u003e4. Testing of I/O data of cloud functions.\u003c/p\u003e\n\u003cp\u003e5. Security testing.\u003c/p\u003e\n\u003cp\u003e6. Regression testing\u003c/p\u003e\n\u003cp\u003e7. System testing\u003c/p\u003e\n\n\n\u003ch3\u003eTeam Members:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AninditaGuha98\"\u003e Anindita Guha \u003c/li\u003e\n\u003cli\u003e Devam Shah \u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Harshpatel44\"\u003e Harsh Patel \u003c/li\u003e\n \u003c/ul\u003e\n \n \n\u003ch2\u003eReferences\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWord cloud code: \u003ci\u003ehttps://www.geeksforgeeks.org/generating-word-cloud-python/\u003c/i\u003e\u003c/li\u003e\n\u003cli\u003eGoogle Cloud Storage API: \u003ci\u003ehttps://googleapis.dev/python/storage/latest/index.html\u003c/i\u003e\u003c/li\u003e\n\u003cli\u003eK-Means Text clustering: \u003ci\u003ehttps://pythonprogramminglanguage.com/kmeans-text-clustering/\u003c/i\u003e\u003c/li\u003e\n\u003cli\u003eAmazon Lex: \u003ci\u003ehttps://medium.com/velotio-perspectives/amazon-lex-aws-lambda-beyond-hello-world-1403c1825e72\u003c/i\u003e\u003c/li\u003e\n\u003cli\u003eLex-React-Integration :\u003ci\u003ehttps://www.npmjs.com/package/react-lex\u003c/i\u003e\u003c/li\u003e\n\u003c/ul\u003e\n \n \n \n \n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faninditaguha98%2Flearning-management-system-serverless-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faninditaguha98%2Flearning-management-system-serverless-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faninditaguha98%2Flearning-management-system-serverless-application/lists"}