Innovative Home Management: MyCasa Journey Continues
Written on
Chapter 1: Introduction to MyCasa
Welcome to the second installment of my #buildinpublic series! If you didn’t catch the previous entry, you can find it here. MyCasa is an innovative mobile application designed to assist homeowners in managing the upkeep of their houses, townhouses, or apartments effectively.
In recent evenings, I've been diving deep into FastAPI, which has been a journey of both challenges and victories. My background in Python is primarily in cybersecurity, focusing on exploit development and automation scripting, but I’m now transitioning into full-scale application development. While it’s been a rollercoaster of emotions, the satisfaction of overcoming obstacles has been immensely rewarding.
New Project, New Visuals
Currently, I’m using the bluloco-dark theme for Visual Studio Code.
Progress Update
The project structure is established, simulating an MVC framework. It might raise eyebrows among Python enthusiasts, but it aligns well with my thought process. The database setup is complete, and the user endpoints are ready, albeit without OAuth2 integration.
Next Steps
I’m now focusing on developing the subscription endpoints, which will require some design work as I incorporate Stripe into the project. That’s all the commitment I’m making for now.
Challenges Ahead
Several questions are on my mind as I navigate this process:
- What should the monthly subscription fee be?
- Should I use JWT or synchronous API keys for microservice authentication?
- Is Redis the right choice for my needs?
- Where should I securely store sensitive information? I’m not keen on environment variables, even if they are encrypted. Azure Key Vault might be a viable option.
- Completing the microservices architecture is essential; I currently have one service in development and three in the design phase.
Key Decisions Made
Since my last update, I’ve made several crucial decisions:
- MyCasa will exclusively be a mobile application.
- Stripe will handle monthly subscription billing.
- Flask will be utilized for the front end.
- I will delay migrating to DigitalOcean until I have a sufficient user base to warrant the move.
- I’ll use ULIDs instead of UUIDs.
- I prefer asynchronous transactions over synchronous ones (asyncio).
- Pydantic will be a key component of my project.
- Passwords will be securely hashed using SHA-256 with salt and pepper.
- I’ll implement OAuth logins for Google, Facebook, and Twitter.
Chapter 2: Video Insights
Explore the journey of MyCasa in this video that details its development and future direction.