My journey of building a portfolio using microservices and SOLID architecture — part 1.
Today, on July 5th, 2023 I’m starting my journal for building a portfolio. This will be part of a long process.
I’ve been a professional software engineer for more than 5 years, wearing multiple hats — project management, consulting for very small businesses, a lot of low-code/no-code development, and testing. Currently, I am an RPA developer for a large-scale enterprise system.
For the last 4 months or so I’ve been watching Uncle Bob’s Clean Code series, and I am absolutely in love with it! It definitely made me a 10 times better developer in a short time, and I’m excited for what comes next.
I always wanted to have a bigger picture of how all different components work together. There are a lot of tutorials, but most of them are “low-scale”.
I already have a decent knowledge of HTML and CSS and know some front-end Javascript. I want to know what happens “behind the scenes” when I start a web server and how it listens for incoming HTTP requests. I want to use dependency inversion to decouple my authentication and database implementations from the business logic. This is my way of documenting the journey of building a portfolio using the latest trends and best practices. I will be using SOLID architecture, test-driven development, and hosting everything in AWS.
Disclaimer — This is my personal blog, and I am sharing my own experience creating a portfolio for a very small sample project. The use case that I’ve selected is generic and can be extended for a specific application. Also, I will be using chatGPT for inspiration and code snippets.
Here are my starting Use Cases:
- User Registration: Allow users to register for an account by providing their details and securely storing them in the database. The Authentication Service can handle this use case.
- User Login: Enable users to log in with their credentials. The Authentication Service validates the credentials, generates an access token, and returns it to the client.
- Product Retrieval: When a user selects a product from the list, the front-end application sends a request to the Product Service to retrieve product details from the database.
- Price Retrieval: When the user clicks on the “check current price” button, the front-end application sends a request to the Price Service, which retrieves the current price for the selected product from the database and returns it to the client.
So, let’s get started!