Sprint 3 Development Note

Development Note for Project Prism

Featured image

What an incredible week for our little team! We’ve made massive strides across all fronts, particularly in backend development where we’ve nearly wrapped up all core functionality. Let’s dive into what each of us has accomplished this sprint.

Sunho’s Backend Progress

I made huge progress this week with a major milestone for our backend infrastructure! I nearly completed all functionality development and set up an automated deployment pipeline. Here’s what I pulled off:

Lambda Functions Development & Optimization

Lambda Function Orchestration Pattern

I spotted duplicated code in multiple Lambda functions (audio_to_ai and pattern_to_ai). Both functions shared similar post-processing after receiving AI responses. So I pulled out the common bits into a new “Result Save Send” lambda that handles database storage and Arduino communication. This move lets the original lambda return responses to the frontend immediately without waiting to save the result to the database and send it to arduino.

The new workflow architecture works like this:

  1. First-stage Lambdas (audio_to_ai, pattern_to_ai):
    • Handle authentication
    • Prepare input for AI processing
    • Validate AI responses
    • Return quick results to frontend
    • Asynchronously invoke second-stage Lambda
  2. Second-stage Lambda (result_save_send):
    • Process and parse AI responses
    • Store data in S3 and DynamoDB
    • Retrieve IR codes from DynamoDB
    • Send commands to Arduino devices via WebSockets
    • Handle all backend processing without blocking user response

This approach gives us:

Final Architecture Diagram Final Architecture Diagram. The new “Result Save Send” Lambda handles all backend processing, while the original Lambdas return quick responses to the frontend.

DynamoDB Query Patterns & Sort Keys

The application uses this pattern to query user activity by time ranges:

Infrastructure as Code Implementation

CI/CD Pipeline Implementation

IAM Management Learning

Known Issues

Next Moves:


Taemin’s Frontend Progress

Taemin has built all the foundational components we need for user interaction. He focused on getting working logic first, with plans to make everything look pretty in later sprints:

Progress from Sprint 2

  1. Device Registration Page

    • Built a clean UI for users to enter their UUID and PIN
    • Used React useState to manage form data with controlled input fields
    • Added validation to make sure inputs follow the right format before submission
    • Stored UUID and PIN in local state so we can use them in API requests
  2. Audio File Submission (POST Request)

    • Created a POST request function that sends data to the backend
    • The request includes:
      • UUID
      • PIN
      • Audio file (binary)
    • Used the FormData API to handle file uploads properly
    • Made sure the backend can receive and process the request correctly

React Concepts Taemin Learned & Applied

Questions & Decisions

Taemin’s Goals for Sprint 4

WebSocket Status Implementation Plan


Harry’s Market Research Findings

Harry has completed extensive online research and finalized our student survey design:

Product Differentiation

Consumer Demographics

College Student Market Segment

Adoption Barriers & Future Opportunities


NEXT STEPS

For Sprint 4, we’re planning to:

  1. Sunho (Backend): Complete integration testing and Arduino connectivity
  2. Taemin (Frontend): Convert to Next.js and implement real-time communication features
  3. Harry (Market Research): Distribute surveys, collect responses, and analyze data to refine our roadmap
  4. Sunho and Harry: Develop detailed revenue streams and cost structure based on the research findings

We’re making incredible progress toward our MVP! The backend functionality is nearly complete, frontend capabilities are coming along quickly, and the market research continues to validate our approach while highlighting key opportunities for us to stand out.

Onward to Sprint 4!