Skip to content

Commit ae66e4c

Browse files
committed
feat: project proposal
1 parent 1d7255c commit ae66e4c

File tree

3 files changed

+312
-193
lines changed

3 files changed

+312
-193
lines changed

content/2-Proposal/_index.md

Lines changed: 113 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -5,111 +5,116 @@ weight: 2
55
chapter: false
66
pre: " <b> 2. </b> "
77
---
8-
{{% notice warning %}}
9-
⚠️ **Note:** The information below is for reference purposes only. Please **do not copy verbatim** for your report, including this warning.
10-
{{% /notice %}}
11-
12-
In this section, you need to summarize the contents of the workshop that you **plan** to conduct.
13-
14-
# IoT Weather Platform for Lab Research
15-
## A Unified AWS Serverless Solution for Real-Time Weather Monitoring
16-
17-
### 1. Executive Summary
18-
The IoT Weather Platform is designed for the ITea Lab team in Ho Chi Minh City to enhance weather data collection and analysis. It supports up to 5 weather stations, with potential scalability to 10-15, utilizing Raspberry Pi edge devices with ESP32 sensors to transmit data via MQTT. The platform leverages AWS Serverless services to deliver real-time monitoring, predictive analytics, and cost efficiency, with access restricted to 5 lab members via Amazon Cognito.
19-
20-
### 2. Problem Statement
21-
### What’s the Problem?
22-
Current weather stations require manual data collection, becoming unmanageable with multiple units. There is no centralized system for real-time data or analytics, and third-party platforms are costly and overly complex.
23-
24-
### The Solution
25-
The platform uses AWS IoT Core to ingest MQTT data, AWS Lambda and API Gateway for processing, Amazon S3 for storage (including a data lake), and AWS Glue Crawlers and ETL jobs to extract, transform, and load data from the S3 data lake to another S3 bucket for analysis. AWS Amplify with Next.js provides the web interface, and Amazon Cognito ensures secure access. Similar to Thingsboard and CoreIoT, users can register new devices and manage connections, though this platform operates on a smaller scale and is designed for private use. Key features include real-time dashboards, trend analysis, and low operational costs.
26-
27-
### Benefits and Return on Investment
28-
The solution establishes a foundational resource for lab members to develop a larger IoT platform, serving as a study resource, and provides a data foundation for AI enthusiasts for model training or analysis. It reduces manual reporting for each station via a centralized platform, simplifying management and maintenance, and improves data reliability. Monthly costs are $0.66 USD per the AWS Pricing Calculator, with a 12-month total of $7.92 USD. All IoT equipment costs are covered by the existing weather station setup, eliminating additional development expenses. The break-even period of 6-12 months is achieved through significant time savings from reduced manual work.
29-
30-
### 3. Solution Architecture
31-
The platform employs a serverless AWS architecture to manage data from 5 Raspberry Pi-based stations, scalable to 15. Data is ingested via AWS IoT Core, stored in an S3 data lake, and processed by AWS Glue Crawlers and ETL jobs to transform and load it into another S3 bucket for analysis. Lambda and API Gateway handle additional processing, while Amplify with Next.js hosts the dashboard, secured by Cognito. The architecture is detailed below:
32-
33-
![IoT Weather Station Architecture](/images/2-Proposal/edge_architecture.jpeg)
34-
35-
![IoT Weather Platform Architecture](/images/2-Proposal/platform_architecture.jpeg)
36-
37-
### AWS Services Used
38-
- **AWS IoT Core**: Ingests MQTT data from 5 stations, scalable to 15.
39-
- **AWS Lambda**: Processes data and triggers Glue jobs (two functions).
40-
- **Amazon API Gateway**: Facilitates web app communication.
41-
- **Amazon S3**: Stores raw data in a data lake and processed outputs (two buckets).
42-
- **AWS Glue**: Crawlers catalog data, and ETL jobs transform and load it.
43-
- **AWS Amplify**: Hosts the Next.js web interface.
44-
- **Amazon Cognito**: Secures access for lab users.
45-
46-
### Component Design
47-
- **Edge Devices**: Raspberry Pi collects and filters sensor data, sending it to IoT Core.
48-
- **Data Ingestion**: AWS IoT Core receives MQTT messages from the edge devices.
49-
- **Data Storage**: Raw data is stored in an S3 data lake; processed data is stored in another S3 bucket.
50-
- **Data Processing**: AWS Glue Crawlers catalog the data, and ETL jobs transform it for analysis.
51-
- **Web Interface**: AWS Amplify hosts a Next.js app for real-time dashboards and analytics.
52-
- **User Management**: Amazon Cognito manages user access, allowing up to 5 active accounts.
53-
54-
### 4. Technical Implementation
55-
**Implementation Phases**
56-
This project has two parts—setting up weather edge stations and building the weather platform—each following 4 phases:
57-
- Build Theory and Draw Architecture: Research Raspberry Pi setup with ESP32 sensors and design the AWS serverless architecture (1 month pre-internship)
58-
- Calculate Price and Check Practicality: Use AWS Pricing Calculator to estimate costs and adjust if needed (Month 1).
59-
- Fix Architecture for Cost or Solution Fit: Tweak the design (e.g., optimize Lambda with Next.js) to stay cost-effective and usable (Month 2).
60-
- Develop, Test, and Deploy: Code the Raspberry Pi setup, AWS services with CDK/SDK, and Next.js app, then test and release to production (Months 2-3).
61-
62-
**Technical Requirements**
63-
- Weather Edge Station: Sensors (temperature, humidity, rainfall, wind speed), a microcontroller (ESP32), and a Raspberry Pi as the edge device. Raspberry Pi runs Raspbian, handles Docker for filtering, and sends 1 MB/day per station via MQTT over Wi-Fi.
64-
- Weather Platform: Practical knowledge of AWS Amplify (hosting Next.js), Lambda (minimal use due to Next.js), AWS Glue (ETL), S3 (two buckets), IoT Core (gateway and rules), and Cognito (5 users). Use AWS CDK/SDK to code interactions (e.g., IoT Core rules to S3). Next.js reduces Lambda workload for the fullstack web app.
65-
66-
### 5. Timeline & Milestones
67-
**Project Timeline**
68-
- Pre-Internship (Month 0): 1 month for planning and old station review.
69-
- Internship (Months 1-3): 3 months.
70-
- Month 1: Study AWS and upgrade hardware.
71-
- Month 2: Design and adjust architecture.
72-
- Month 3: Implement, test, and launch.
73-
- Post-Launch: Up to 1 year for research.
74-
75-
### 6. Budget Estimation
76-
You can find the budget estimation on the [AWS Pricing Calculator](https://calculator.aws/#/estimate?id=621f38b12a1ef026842ba2ddfe46ff936ed4ab01).
77-
Or you can download the [Budget Estimation File](../attachments/budget_estimation.pdf).
78-
79-
### Infrastructure Costs
80-
- AWS Services:
81-
- AWS Lambda: $0.00/month (1,000 requests, 512 MB storage).
82-
- S3 Standard: $0.15/month (6 GB, 2,100 requests, 1 GB scanned).
83-
- Data Transfer: $0.02/month (1 GB inbound, 1 GB outbound).
84-
- AWS Amplify: $0.35/month (256 MB, 500 ms requests).
85-
- Amazon API Gateway: $0.01/month (2,000 requests).
86-
- AWS Glue ETL Jobs: $0.02/month (2 DPUs).
87-
- AWS Glue Crawlers: $0.07/month (1 crawler).
88-
- MQTT (IoT Core): $0.08/month (5 devices, 45,000 messages).
89-
90-
Total: $0.7/month, $8.40/12 months
91-
92-
- Hardware: $265 one-time (Raspberry Pi 5 and sensors).
93-
94-
### 7. Risk Assessment
95-
#### Risk Matrix
96-
- Network Outages: Medium impact, medium probability.
97-
- Sensor Failures: High impact, low probability.
98-
- Cost Overruns: Medium impact, low probability.
99-
100-
#### Mitigation Strategies
101-
- Network: Local storage on Raspberry Pi with Docker.
102-
- Sensors: Regular checks and spares.
103-
- Cost: AWS budget alerts and optimization.
104-
105-
#### Contingency Plans
106-
- Revert to manual methods if AWS fails.
107-
- Use CloudFormation for cost-related rollbacks.
108-
109-
### 8. Expected Outcomes
110-
#### Technical Improvements:
111-
Real-time data and analytics replace manual processes.
112-
Scalable to 10-15 stations.
113-
#### Long-term Value
114-
1-year data foundation for AI research.
115-
Reusable for future projects.
8+
9+
# Rafilm: AI-Powered Movie Logging & Recommendation Platform
10+
## A Serverless AWS Solution for Intelligent Movie Discovery
11+
12+
### 1. Executive Summary
13+
Rafilm is a Letterboxd-inspired movie logging and recommendation platform designed to help general users track their watched films, share reviews, and discover new favorites through AI-powered recommendations. Built as part of the AWS First Cloud Journey (FCJ) internship, Rafilm integrates Amazon Personalize and Bedrock to deliver tailored movie suggestions and conversational recommendations via a chatbot interface.
14+
15+
The platform runs fully on AWS Serverless architecture, featuring Amplify-hosted Next.js frontend, Lambda-based backend services connected through API Gateway, and DynamoDB for scalable user and movie data storage. TMDb provides external movie data integration, while Amazon Cognito manages user authentication. Rafilm aims to demonstrate a scalable, intelligent, and cost-efficient architecture capable of supporting multi-user access and interactive experiences.
16+
17+
### 2. Problem Statement
18+
19+
#### What’s the Problem?
20+
While existing movie platforms like Letterboxd and IMDb offer robust logging and social features, they lack **personalized recommendation systems** and **interactive discovery experiences**. Users often rely on external sources or generic trending lists to find what to watch next, leading to irrelevant or repetitive suggestions.
21+
22+
#### The Solution
23+
Rafilm integrates a **custom recommendation pipeline** powered by **Amazon Personalize**, combined with a **Bedrock LLM chatbot** that interprets user preferences and generates conversational movie recommendations. Users can log movies, write reviews, and receive curated suggestions—all within one seamless experience. Unlike Letterboxd, Rafilm focuses on data-driven personalization and AI-assisted interaction rather than pure social networking.
24+
25+
#### Benefits and Return on Investment
26+
By leveraging AWS Serverless services, Rafilm achieves near-zero maintenance cost, pay-per-use scalability, and real-time AI-driven personalization. For the FCJ internship, the project serves as both a **technical showcase** and a **learning artifact** for integrating AI services in serverless architectures. Projected cost remains under $1/month during testing, with AWS Free Tier coverage for most usage.
27+
28+
### 3. Solution Architecture
29+
30+
Rafilm employs a modular serverless architecture using AWS services for scalability, integration, and cost optimization.
31+
32+
![architecture-diagram](/images/2-Proposal/platform_architecture.jpeg)
33+
34+
#### AWS Services Used
35+
- **AWS Amplify**: Hosts the Next.js frontend for movie browsing, logging, and chatbot interaction.
36+
- **Amazon Cognito**: Handles user registration, login, and session management.
37+
- **Amazon API Gateway**: Routes client requests to backend Lambda functions.
38+
- **AWS Lambda**: Executes serverless business logic (e.g., CRUD for reviews, fetching TMDb data, triggering recommendations).
39+
- **Amazon DynamoDB**: Stores user logs, movie interactions, and preferences.
40+
- **Amazon Personalize**: Trains and serves personalized recommendation models.
41+
- **Amazon Bedrock**: Provides conversational chatbot functionality for recommendation dialogue.
42+
- **Amazon S3**: Stores static assets and backups for logs and model outputs.
43+
44+
#### Component Design
45+
- **Frontend (Next.js)**: User-friendly interface for movie discovery, logging, and chat-based recommendations.
46+
- **Backend (Lambda + API Gateway)**: Stateless logic layer handling user operations, movie fetching, and recommendation retrieval.
47+
- **Data Layer (DynamoDB + S3)**: Stores structured user interactions and movie metadata for model training.
48+
- **AI Layer (Personalize + Bedrock)**: Personalize analyzes historical user interactions; Bedrock chatbot provides natural language access to personalized results.
49+
- **Authentication (Cognito)**: Securely manages multi-user access.
50+
51+
#### Architecture Overview
52+
1. Users log in via Cognito and interact with the Next.js interface.
53+
2. Actions such as logging or rating trigger API Gateway → Lambda → DynamoDB workflows.
54+
3. The Bedrock chatbot accesses Personalize results to generate conversational movie suggestions.
55+
4. Amplify hosts the frontend for seamless deployment and scalability.
56+
57+
### 4. Technical Implementation
58+
59+
#### Implementation Phases
60+
1. **Architecture Design (Month 1):** Research AWS serverless and AI integration patterns; finalize architecture diagrams.
61+
2. **Prototype Integration (Month 2):** Implement Amplify hosting, Cognito authentication, and Lambda-based backend APIs.
62+
3. **Recommendation System (Month 3):** Connect Personalize and Bedrock for end-to-end AI recommendation and chatbot response.
63+
4. **Testing & Deployment:** Conduct functional testing, optimize costs, and deploy production-ready version on Amplify.
64+
65+
#### Technical Requirements
66+
- **Frontend:** Next.js + React hosted via AWS Amplify, using TMDb API for movie data.
67+
- **Backend:** AWS Lambda (Node.js runtime) connected through API Gateway.
68+
- **Database:** Amazon DynamoDB for scalable user and review data.
69+
- **AI Components:** Amazon Personalize (user-item recommendations) and Bedrock (chatbot dialogue).
70+
- **Authentication:** Amazon Cognito for secure, multi-user access.
71+
- **Automation:** AWS SDK & CloudFormation for provisioning; AWS SAM for deployment workflows.
72+
73+
### 5. Timeline & Milestones
74+
75+
| Phase | Duration | Key Deliverables |
76+
|-------|-----------|------------------|
77+
| Month 1 | Research & Architecture | AWS design finalized, diagrams completed |
78+
| Month 2 | Core Development | Amplify hosting, Cognito setup, Lambda API, DynamoDB schema |
79+
| Month 3 | AI Integration & Testing | Personalize training, Bedrock chatbot, system deployment |
80+
| Post-Launch | Continuous Improvement | Cost optimization, new features, UX refinement |
81+
82+
### 6. Budget Estimation
83+
84+
**Estimated Monthly Cost (AWS Free Tier eligible):**
85+
86+
*To be updated*
87+
88+
<!-- | Service | Usage | Monthly Cost |
89+
|----------|--------|--------------|
90+
| AWS Lambda | 100K requests | $0.00 |
91+
| API Gateway | 5K API calls | $0.05 |
92+
| DynamoDB | 25K reads/writes | $0.20 |
93+
| S3 | 1 GB storage | $0.02 |
94+
| Amplify Hosting | 500 MB | $0.35 |
95+
| Cognito | 50 users | $0.00 |
96+
| SQS | 10K messages | $0.01 |
97+
| Personalize | 1 model training + inference | $0.05 |
98+
| Bedrock | 500 chatbot requests | $0.05 | -->
99+
100+
<!-- **Total Estimated Cost:** ≈ **$0.7/month** (≈ **$8.40/year**) -->
101+
102+
### 7. Risk Assessment
103+
104+
| Risk | Probability | Impact | Mitigation |
105+
|------|--------------|---------|------------|
106+
| API rate limits from TMDb | Medium | Medium | Cache requests via Lambda |
107+
| Model training cost escalation | Low | Medium | Use limited training dataset for testing |
108+
| Chatbot latency | Medium | Low | Optimize Bedrock model type and response size |
109+
| Authentication or token expiry | Medium | Low | Use short-lived JWTs and refresh tokens |
110+
| Data loss | Low | High | Backup DynamoDB to S3 regularly |
111+
112+
### 8. Expected Outcomes
113+
114+
#### Technical Improvements
115+
- Demonstrates **serverless integration** of AI/ML and LLM services in real-world use.
116+
- Establishes a reusable AWS architecture for recommendation-based apps.
117+
118+
#### Long-Term Value
119+
- Provides a foundation for future expansion into a **social movie discovery network**.
120+
- Serves as an **AWS FCJ internship showcase project** highlighting scalability, personalization, and conversational AI.

0 commit comments

Comments
 (0)