DEV Community

Cover image for Remember2Pack
Kuljit Aujla
Kuljit Aujla

Posted on

Remember2Pack

Remember2Pack — AI-Driven Smart Packing Assistant for the Modern Traveler


The Problem

Everyone knows the feeling — spending precious time packing only to realize you forgot something essential.

Traditional checklists and note apps help, but they’re time-consuming and easy to overlook.

Remember2Pack solves this problem by combining AI, computer vision, and cloud-based storage to create an intelligent packing assistant.

Users can upload a photo of their packed items and let AWS Rekognition detect what’s in it — or manually type items that weren’t captured in the image.

The app then generates AI-powered recommendations and allows users to chat with an integrated assistant that refines the list based on trip details and context.


What It Does

Remember2Pack transforms the packing process from tedious to intelligent, combining automation and interactivity in one platform.

Core Features

  • Hybrid Item Input: Upload an image of packed items (detected via AWS Rekognition) and manually add any missed items for complete flexibility.
  • AI Recommendations: Enter a trip description (destination, duration, purpose, etc.) and get AI-generated suggestions of what else to bring.
  • Conversational Refinement: A built-in chatbot with short-term memory refines your list through open-ended questions relative to provided information, ensuring context-aware recommendations.
  • Saved Recommendations: Users can save previous lists — including uploaded images — for future reuse.
  • Secure Authentication: JWT-based login with OTP verification using Resend SMTP for safe account access.
  • Cloud-Backed Storage: AWS S3 securely stores images; MongoDB maintains user data and packing history.
  • AI Fallback System: If the Huggingface Llama 3.1 Instruct runs out of tokens or fails, Claude Haiku 3.5 automatically takes over for seamless continuity.
  • Mobile Optimization: Designed with responsive layouts for a clean, modern experience on all devices for flexibility.
  • Containerized Backend: Dockerized Node.js backend for consistent, scalable deployment.

AI System & Prompt Engineering

Step 1 — Contextual Recommendation Generation

When a user enters a trip description like “One-week beach vacation with hiking and sightseeing” (ideally more detailed), the backend sends this along with packed items (detected and typed) to Llama 3.1 Instruct via the Hugging Face API.

The model analyzes what’s packed versus what’s described and returns a list of missing essentials.

If the Hugging Face model fails or hits token limits, the system automatically falls back to Claude Haiku 3.5 for reliability and speed. Prioritizing uptime and UX.

Step 2 — Chatbot Refinement

After recommendations are generated, users can chat with the AI assistant to improve their list.

The chatbot uses short-term memory to stay aware of:

  • Items already packed
  • AI-generated suggestions
  • The context of the trip

It asks open-ended questions like:

“You mentioned hiking — do you want me to include gear like trekking poles or water-resistant clothing?”

This dynamic feedback loop ensures smarter, personalized packing.


AWS Integration

AWS S3 — Image Storage

Each user has a private folder for their uploaded images. URLs are stored in MongoDB and displayed within saved recommendations. Additionally, setup a lifecycle policy for cost efficiency to ensure temp files are deleted a day after creation.

AWS Rekognition — Item Detection

When a user uploads an image to S3 (gets stored in the temporary folder first), the backend sends it to Rekognition through the DetectLabelsCommand.

Detected items (e.g., shirt, toothbrush, charger) are filtered for confidence and automatically added to the packing list.

AWS CloudWatch — Monitoring

Used for system logging, monitoring Rekognition response times, and tracking potential API errors.

AWS Lambda — Experimentation

I implemented a Lambda function that was triggered on S3 specific prefix uploads to detect items.

Although functional, the Lambda workflow introduced noticeable latency compared to the synchronous pipeline.

I ultimately removed it — but it was a valuable learning experience in serverless computing and event-driven AWS design.


Authentication & Security

  • JWT Authentication: Enables secure, stateless user sessions.
  • Resend SMTP: Handles OTP-based email verification and password reset workflows.
  • CORS Handling: When deploying, I resolved cross-origin issues by unifying domain structure through custom domain configuration and using environment variables instead of hardcoded URLs.
  • Secure Environment Management: All credentials and API keys are stored in environment variable section and excluded from source control.
  • User Sensitive Data Middleware: All endpoints needing explicit user access have checks to ensure JWT in cookie's and verified in endpoint.
  • Protected Routes: Ensured only verified users are able to access dashboard and other user specific pages through protected routes and cookie userID confirmation.

Dockerization & Deployment

I containerized both the frontend and backend using Docker to ensure consistent deployment environments.

  • Backend: Runs as a Dockerized Node.js service on Render, configured through environment variables.
  • Frontend: Dockerized as well but built statically on Render for cost efficiency while remaining easily scalable through Nginx serving in docker image if needed.
  • Outcome: Streamlined deployment, version control consistency, and scalable architecture ready for future expansion.

Key Technical Implementations

  • Hybrid Input System: Combines image recognition and manual typing for flexibility.
  • Dual AI Model Integration: Automatic fallback between Llama 3.1 and Claude Haiku 3.5 for reliability.
  • AWS-Powered Cloud Workflow: Handles storage, recognition, and logging at scale.
  • Resend SMTP Integration: Email verification with secure, domain-based authentication.
  • Containerized Backend: Enables consistent builds and simple deployment pipelines.
  • Mobile Optimization: Responsive UI ensures a seamless experience across all devices.
  • S3 Bucket optimization: Created a lifecycle policy for the S3 bucket to ensure the temporary images are cleared from the temporary image folder the next day.

Challenges I Faced

  1. Custom Domain & CORS Conflicts

    • Deploying on render caused CORS issues with frontend and backend communications caused by different subdomain's provided by render which were fixed when migrating to a GoDaddy domain and using api subdomain as a fix.
    • Solved by domain forwarding and dynamic environment-based configuration.
  2. Prompt Engineering Complexity

    • Early AI responses lacked consistency. Iterative testing and refining prompt templates significantly improved output quality.
  3. Docker Learning Curve

    • Initially confusing, but understanding how containers, ports, and environment variables interact made deployment smooth and predictable.
  4. AWS Lambda Performance

    • Successfully implemented event triggers, but latency made synchronous processing more efficient for real-time use cases.
  5. Authentication Reliability

    • Configuring Resend’s SMTP domain verification and ensuring email delivery required careful debugging and testing.

Accomplishments I’m Proud Of

  • Developed a production-ready AI-powered packing assistant using modern web and cloud technologies.
  • Created a hybrid input system for flexibility between image detection and manual entry.
  • Implemented JWT + OTP authentication for secure user access.
  • Integrated dual AI models with intelligent fallback handling.
  • Achieved full mobile responsiveness for an optimized user experience on all devices.
  • Deployed a Dockerized backend with environment isolation for reliable scalability.
  • Gained practical experience with AWS Rekognition, S3, and serverless architecture concepts through Lambda experimentation.

What I Learned

Technical Growth

  • Hands-on integration with AWS (S3, Rekognition, CloudWatch, Lambda).
  • Real-world prompt engineering for LLM consistency.
  • Docker deployment workflows and container orchestration.
  • Environment-based configuration for multi-domain deployment.
  • DevOps such as CI/CD, monitoring, and deployment automation

Software Engineering Insights

  • The trade-off between serverless scalability and real-time responsiveness.
  • How to build flexible systems that adapt to different user behaviors.
  • The importance of designing for both usability and technical reliability.

Built With

Languages: JavaScript (Node.js)

Frontend Framework: React (Vite)

Backend Framework: Express

AI Models: Llama 3.1 Instruct, Claude Haiku 3.5

Cloud Services: AWS S3, Rekognition, CloudWatch, Lambda (experimented)

Database: MongoDB Atlas

Authentication: JWT + Resend SMTP (OTP)

Containerization: Docker

Deployment: Render + GoDaddy Custom Domain

Version Control: Git

Dev Tools: Postman, VS Code


AI Use Declaration

Remember2Pack is more than a packing list generator — it’s a complete, AI-powered solution that blends automation, intelligence, and design to solve a real-world problem.

A project like this could not have been complete without the careful usage of AI. I believe that transparency of AI usage is important in development of projects and therefore, I provide a look into how AI was utilized in this project — and a bit of who I am behind it.

Although AI was used, I would like to note that this project was neither vibe coded nor rushed in any sense. I take great pride in saying everything in this project was carefully crafted by me and each decision that follows within it was for good reason. My personal standards/goals and mindset would not allow me to make a project without understanding even the littlest of concepts used let alone unknown abstract copy pasting.

How AI Helped

AI tools were used thoughtfully to:

  • Debug issues and clarify syntax-level problems
  • Explore architectural alternatives and compare implementation choices
  • Improve clarity in documentation and design reasoning
  • Explain complex concepts like Docker, AWS, and authentication flows
  • Provide some much-needed moral support at 3 A.M. during long problem-solving sessions
  • Helping with organizing README.md
  • Guidance in AWS Console
  • Recommending Youtube tutorials to teach and reinforce important concepts (like Authentication)
  • Sounding more professional in advertising this project through this blog, Readme, LinkedIn post (while every idea, decision, and piece of information was written and authored by me.)

AI didn’t build this project for me — it built me into a better developer.


Links

Landing Page
Dashboard


Feedback, suggestions, or improvements? Drop them below — I’m always open to learning

Top comments (0)