The Study Abroad System is a cloud-native application designed to ensure the safety and well-being of students while studying abroad. It provides an integrated communication platform for students, faculty, and administrators, allowing them to track locations, receive notifications, and respond promptly to safety-related alerts.
This application serves three key user roles:
- Students participating in study abroad programs
- Faculty responsible for monitoring student safety
- Administrators overseeing the deployment and management of the system
- Real-time location tracking for students
- Automated check-ins and notifications
- Emergency alerts and faculty oversight
- Role-based access and system management
- Custom check-in status creation
muppalla-ramaraju-study_abroad/
├── README.md # Main project documentation
├── backend/ # AWS Lambda functions code
│ ├── Various Lambda files # Each file corresponds to a specific Lambda function
│ └── Subdirectories # Organized Lambda functions
├── public/ # Frontend files (HTML, CSS, JS)
│ ├── css/ # Stylesheets for all pages
│ ├── js/ # JavaScript logic
│ └── HTML files # Page templates
├── terraform-project/ # Infrastructure as Code (Terraform)
│ ├── Root Terraform files # Main deployment configuration
│ └── modules/ # Modular infrastructure components
└── .github/workflows/ # CI/CD pipelines
The system is built using a serverless architecture with:
- Frontend: HTML, CSS, JavaScript (hosted in S3, delivered via CloudFront)
- Backend: AWS Lambda functions, Amazon API Gateway
- Database: Amazon DynamoDB (UserProfiles, Locations, ClassesTrips tables)
- Authentication: Amazon Cognito
- Notifications: Amazon SNS
- Infrastructure: Defined with Terraform
- CI/CD: GitHub Actions
- AWS Account with programmatic access
- S3 bucket for Terraform state (if using remote backend)
- Required GitHub Secrets:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_S3_BUCKET
- CLOUDFRONT_DISTRIBUTION_ID (for frontend cache invalidation)
- Terraform CLI v1.6+ installed (locally or via GitHub Actions)
The system can be deployed via GitHub Actions:
- Go to the repository on GitHub
- Navigate to the Actions tab
- Choose the "Full Deploy Pipeline" workflow
- Run the workflow
For more detailed deployment instructions, see the Administrator Deployment Documentation.
Students can:
- Update their location using geolocation
- Check in with peers
- Select a status (e.g., "At Hotel", "In Transit")
- Add comments for context
- Report emergencies via the SOS button
Faculty can:
- View real-time student locations
- Send check-in notifications to students
- Create custom check-in statuses
- Receive emergency alerts
- Access historical check-in data
Administrators can:
- Create/manage classes and trips
- Assign faculty and students to classes
- Set up and monitor the system
Detailed documentation for each user role:
- Student Documentation
- Faculty Documentation
- Admin Documentation
- Backend Documentation
- Infrastructure Documentation
- Frontend: HTML5, CSS3, JavaScript (ES6)
- Backend: AWS Lambda (Python/Node.js)
- Database: Amazon DynamoDB
- Authentication: Amazon Cognito
- API Gateway: RESTful API endpoints
- Notifications: Amazon SNS
- Storage: Amazon S3
- CDN: Amazon CloudFront
- IaC: Terraform
- CI/CD: GitHub Actions
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Texas A&M University Mays Business School
- Study Abroad Program