I’ve made an open-source full stack medieval eBay-like marketplace with microservices, which in theory can handle a few million users, but in practice I didn’t implement caching. I made it to learn JWT, React and microservices.

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!


Leave a Reply

Your email address will not be published. Required fields are marked *


Attract more local customers. Risks associated with cryptocurrency trading platforms.