Week 3: When My Side Project Actually Started Working
SheGlow Concierge is an AI-powered skincare routine optimizer designed to deliver personalized daily skincare plans to users. The application intelligently analyzes user profiles (skin type, concerns, lifestyle, and goals) and generates tailored product recommendations using generative AI.
8/19/20254 min read
You remember that moment where you are learning how to ride a bike and just suddenly, oh, I’m no longer wobbling? That’s what it was like this week with SheGlow Concierge.
Context: I’m creating an AWS-based skincare routine management app for my capstone project. Not because the planet is in danger of being overrun with yet another beauty app, but because I wanted something practical to dive headfirst into — something that would compel me to handle every aspect of the stack.
Week 3 is where everything went from “I hope this works” to “Oh wow, it works.
The Magic Moment: My First Real User (Me!)
Picture this: Sunday night, 9 PM, watered-down drink on my nightstand. I created my first skincare routine in the app.
AM Routine: cleanser, vitamin C, moisturizer, sunscreen” — and hit submit.
Then I waited.
Eventually,
There was an email notification in my inbox. A legitimate email. From my app. Via AWS SNS. Requesting confirmation of my subscription to skincare reminders.
I shouted “YES!”. It made absolutely no difference to my dog, but I couldn’t help being thrilled.
This wasn’t just code anymore. This was a living, breathing application that could:
Stow my routines in DynamoDB
Send me actual emails
Data update and removal on demand
Remember who I was through Cognito
For the first time, I wasn’t debugging — I was using what I built.
Making It Real with Streamlit
The one aspect of working on the backend is that it’s like being one of those wizards no one ever sees. Your Lambda functions are casting spells, your API Gateway handles magic, and if you don’t reside in Postman, nobody knows.
So I built a frontend. Nothing Instagram-worthy — just a simple Streamlit app with:
A sidebar that logs you in (thank you, Cognito!)
Forms that do not make you feel like crying
A download button for calendar files (because one’s retinol reminder should be right next to one’s standup on the team?)
The moment I logged in and saw “Welcome back!” with my actual routines displayed. I had to take a screenshot. Not for LinkedIn. Not for my portfolio. Just for me. Proof that I did this thing.
The Plot Twist: CI/CD Was the Easy Part
Here’s something they don’t tell you in tutorials — sometimes the second time is the charm.
Getting this CI/CD pipeline up and running? A single minor YAML filename adjustment and voila, green checkmarks. Having built my initial pipeline a week prior, I knew the dance. It seemed almost anticlimactic. Almost.
But I must inform you of the reality of the conflict that existed before the efficient pipeline layout.
The end-to-end testing. Via CLI. An entire Saturday went missing in that black hole.
Imagine me at 10 AM, self-assured: “I’ll just do it all by hand first and then automate it.”
At 2 PM: “Why is this Lambda timing out?”
4 PM: “What do you MEAN ‘circular dependency’?”
By 6 PM: “I’m either close to solving this or just about to make it much worse.”
Every integration had an opinion about how things should work:
DynamoDB required specific IAM permissions I hadn’t thought of
API Gateway chose my endpoints as suggestions, not rules
Cognito and Lambda weren’t speaking the same language
And what about the SNS subscription confirmation messages that ended up in spam?
I debugged over lunch. I debugged over dinner. I debugged while my error messages made sense (a sign of either mastery or madness).
But here’s the beautiful part: all that CLI wrestling meant my CI/CD setup was a breeze. One minor filename fix — .yml to .yaml — and suddenly I had automation. All those hours of manual testing had already caught the real demons.
When the workflow went green, I leaned back in my chair and said, “Older me took one for the team today.”
The Actual Lessons (Not the LinkedIn-y Ones)
The debugging is the real work. I read more error messages than I wrote code this week. And that’s. Normal? Once I realized that debugging wasn’t a detour but the actual route, it all seemed less frustrating.
Users make it real. Even if it’s just you, you can click through your app while being your own user. It’s powerful to flip from developer brain into user brain and say, “You know what? This makes sense.”
Automation is self-care. That CI/CD pipeline isn’t just about being “enterprise-ready.” It’s about being kind to Future Me, who won’t have to remember 17 deployment steps at midnight.
What Truly Matters
Three weeks ago, SheGlow Concierge was a notion in my project proposal. Now it’s sending emails, storing data, and deploying itself. That’s not nothing.
But more than the tech success, Week 3 had in store: proof that I can problem-solve. Every error message that I overcame, every integration that I wired together, every green check mark I conquered — they are all entries in the ledger of my self-assurance.
Next Week’s Adventure
Week 4 is about polish:
Better error handling (since “Something went wrong” does not assist anyone)
More innovative reminders (morning and evening routine)
Possibly some actual CSS (gasp!)
But tonight? Tonight, I celebrate. With a face mask, of course. Gotta use the app.
If you are also in the trenches studying AWS, working on coding projects, and figuring out career transitions, remember that every single error message is just a teacher disguised. And yes, do celebrate when your email notifications are behaving. That stuff is hard!
Leave a comment if you want to commiserate on CI/CD pipelines or your own “it finally worked!” moment. We are all in this together.