This project deploys the backend of student-portal with Terraform.
- Cognito UserPool
- DynamoDB Table
- Lambda function with API
- IAM Role for Lambda
- API Gateway that invokes the API Lambda function
- CodeBuild project
- CodePipeline which:
- Monitors frontend repo as a source
- Builds the repo with environment variables from the stack
- Deploys the build into a s3 bucket
- CloudFront Distribution for the s3 bucket
$ terraform init
$ terraform apply
-
Allow Super Admin User to log in
-
Allow Super Admin User to create Faculty Users
-
Allow Faculty Users to create other Faculty Users
-
Allow Faculty Users to create Student User Account with Department and Class No.
-
Allow Faculty Users to update Student User Account with Class No
-
Allow Students to log in and check their current Department and Class No
-
Allow Faculty Users to Add/Edit Student detail with “key/value” like combinations
-
For example, they can set these detail
-
Key: “Semester 1 Result”, Value: JSON object data
-
Key: “Year 1 Report”, Value: JSON object data
-
Key: “Workshop ABC Report” Value: JSON object data
-
Students can log in and check all the detail created for their user and view the UI
-
Students CAN ONLY VIEW the detail, they can not modify the data
-
Faculty members can ADD/UPDATE/VIEW detail for any student based on the Student ID or Email address
-
Amazon Cognito
- To create user accounts with Cognito Group assignment
-
Amazon Lambda
- To run the NodeJS code to interact with DynamoDB
-
Amazon DynamoDB
- To save the Student detail
-
AWS S3
- To host the UI for interacting with the system