This repository contains the Book Store Distributed System, a microservices-based project developed for the Distributed Software Systems course (2025/2026).
Students will work collaboratively to implement different services, including Users, Books, and Orders, using Flask, PostgreSQL, Docker Compose, and Nginx.
- Users Service — Registration, authentication, user management
- Books Service — CRUD operations for books
- Orders Service — Creating and listing book orders
- PostgreSQL — Central database
- Nginx — Load balancer and reverse proxy
-
master— The stable branch (do not push directly here). -
Feature branches — Create a new branch for every task or story.
-
Naming convention:
feature/<short-description>Example:
feature/implement-books-endpoints bugfix/fix-delete-book-endpoint
git clone https://github.com/<org>/bookstore-project.git
cd bookstore-projectgit checkout feature/implement-books-endpoints # Switch to existing branch
OR
git checkout -b bugfix/fix-delete-book-endpoint # Create a new branch with the given nameImplement your assigned issue (check the GitHub Project Board for tasks).
Use clear and meaningful commit messages following this convention:
<type>: <short description>
Example:
feat: add user registration endpoint
fix: correct DB connection URL in users service
docs: update README with setup instructions
refactor: clean up Flask app structurePush your branch to GitHub:
git push origin feature/<task-name>Open a Pull Request from your branch → master Use the provided PR template Assign yourself and add reviewers Wait for code review and approval before merging
- ✅ Use consistent indentation and naming conventions
- 🧠 Keep functions short and single-purpose
- 📄 Add docstrings and comments for clarity
- 🧪 Test your code locally before committing
- 🚫 Avoid hard-coded values — use configuration variables
- 🧼 Remove unused imports, debug prints, and commented code
- Use Issues to track bugs or feature requests
- Reference issues in commits and PRs: Closes #5
- Communicate regularly with your team and raise GitHub issues if needed