Building a Full-Stack Medieval Marketplace Inspired by eBay: A Developerโs Journey
In the world of software development, experimentation and hands-on projects are invaluable for learning new technologies and best practices. Recently, I embarked on creating an open-source, full-stack marketplace reminiscent of eBay, set in a medieval-themed universe. This project leverages microservices architecture and is designed to handle millions of users in theory. While I didn’t implement caching in this version, the project served as a fantastic learning experience, particularly in exploring JWT, React, and microservices fundamentals.
Project Architecture Highlights
Frontend:
– Built with React, utilizing client-side rendering with plain JavaScript and CSS for styling, offering a straightforward and responsive user interface.
API Gateway:
– Developed using ASP.NET Core as a RESTful API gateway, responsible for routing requests and aggregating data. Though separating these concerns into dedicated services is often recommended, I combined them here for simplicity and expediency.
Microservices:
– Comprising four individual ASP.NET Core RESTful API microservices, each managing its own PostgreSQL database instance:
– Authentication Service: Handles user accounts and authentication data.
– Listings Service: Manages marketplace listings.
– Comments Service: Facilitates user comments on items.
– User Rating Service: Manages user ratings and reviews.
Source Code Access
Interested in exploring the codebase? You can find the complete project on GitHub:
https://github.com/szr2001/BuyItPlatform
Development Goals and Future Plans
This project was primarily a personal project to deepen my understanding of React, microservices, and JWT authentication. While caching wasn’t integrated in this iteration, I intentionally left space for it in future versions. Looking ahead, I plan to expand my knowledge by exploring Docker, Kubernetes, and Redis to enhance deployment scalability and performance.
Learning and Community
I believe my code reflects a beginner to mid-level skill set, making it a potential resource for those interested in learning microservices architecture. Despite encountering some bugsโmany of which I intentionally left to focus on core learning objectivesโthe project remains a valuable, hands-on example of building a distributed web application.
Conclusion
Software development is an incredible journey filled with continuous learning and exploration. I encourage fellow developers to experiment, build, and share their projects. Happy coding, internet friends!

