Web application where people share sports & wellness goals and achievements in a public feed, support each other with comments, and manage personal profiles.
| Layer | Tech | Responsibility |
|---|---|---|
| Client | Flutter 3.19 (Web / Mobile) | UI, Riverpod state |
| Gateway | Nginx + Go | TLS, CORS, rate-limit |
| Auth Service | Go 1.22 + Gin | JWT, register / login |
| Feed Service | Go 1.22 + Gin | Posts & comments |
| Profile Service | Go 1.22 + Gin | User bio & avatars |
| Data | PostgreSQL 15 | per-service DBs |
| Cache | Redis 7 | sessions & hot posts |
git clone https://github.com/your-org/health-buddy.git
cd health-buddy
cp .env.example .env # fill secrets
docker compose up --build # backend at http://localhost:8080
# Flutter
cd flutter_app && flutter run -d chrome # or iOS / Android- Gateway: https://api.healthbuddy.app
- Local: http://localhost:8080
- Content-Type: application/json
- Authorization: Bearer
<jwt>
- Body:
{ username, email, password } - Responses:
201:{ token }400: Invalid input500: Server error
- Body:
{ username, password } - Responses:
200:{ token }401: Wrong credentials
- Headers: Authorization
- Responses:
200:{ id, username, email, created_at }404: Not found
- Responses:
204: No content404: Not found
- Responses:
200:{ status: "ok" }503:{ status: "down" }
- Body:
{ title (≤300), content (≤10 000) } - Responses:
201:{ post_id, user_id, title, content, created_at }
- Responses:
200:[ PublicationResponse… ](newest first)
- Responses:
200:PublicationResponse404: Not found
- Body:
{ title, content } - Responses:
200: Updated object403: Forbidden404: Not found
- Responses:
204: No content403: Forbidden404: Not found
- Responses:
200:[ PublicationResponse… ]
- Body:
{ post_id, content (≤10 000) } - Responses:
201:{ comment_id, user_id, content, created_at }
- Responses:
200:[ CommentResponse… ]400: Missing param
- Responses:
200:CommentResponse404: Not found
- Body:
{ content } - Responses:
200: Updated object403: Forbidden404: Not found
- Responses:
204: No content403: Forbidden404: Not found
- Responses:
200:{ status: "ok" }
- Headers: X-User-ID, Content-Type
- Body:
{ name, bio?, avatar_url? } - Responses:
201: ProfileResponse (without posts)
- Responses:
200:{ user_id, name, bio, avatar, created_at, posts: [PublicationResponse…] }
- Body: any subset of
{ name, bio, avatar_url } - Responses:
200: Updated ProfileResponse
- Responses:
204: No content (cascades to Auth deletion)
200 OK: Request succeeded201 Created: Resource created204 No Content: Deletion succeeded400 Bad Request: Validation / JSON error401 Unauthorized: Invalid or missing JWT403 Forbidden: Not owner404 Not Found: Resource does not exist500 Internal: Server or DB failure
Generated from Postman collections
health-buddy/ # repo root
├── backend/
│ ├── services/
│ │ ├── auth_service/ # Auth micro-service
│ │ ├── feed_service/ # Feed micro-service
│ │ └── profile_service/ # Profile micro-service
│ └── gateway_service/ # Gateway
├── front-end/ # Flutter application
│ ├── pubspec.yaml
│ └── .gitignore
├── docker-compose.yml # Orchestrates all services
└── README.md # Initial version
Pull requests welcome. Open an issue first for large changes.
- [+] Go-based microservices architecture (minimum 3 services) (3 points)
- [+] RESTful API with Swagger documentation (1 point)
- [-] gRPC implementation for communication between microservices (1 point)
- [+] PostgreSQL database with proper schema design (1 point)
- [+] JWT-based authentication and authorization (1 point)
- [-] Comprehensive unit and integration tests (1 point)
- [+] Flutter-based cross-platform application (mobile + web) (3 points)
- [+] Responsive UI design with custom widgets (1 point)
- [+] State management implementation (1 point)
- [-] Offline data persistence (1 point)
- [-] Unit and widget tests (1 point)
- [-] Support light and dark mode (1 point)
- [+] Docker compose for all services (1 point)
- [-] CI/CD pipeline implementation (1 point)
- [+] Environment configuration management using config files (1 point)
- [+] GitHub pages for the project (1 point)
- [+] GitHub organization with well-maintained repository (1 point)
- [+] Regular commits and meaningful pull requests from all team members (1 point)
- [+] Project board (GitHub Projects) with task tracking (1 point)
- [+] Team member roles and responsibilities documentation (1 point)
- [+] Project overview and setup instructions (1 point)
- [+] Screenshots and GIFs of key features (1 point)
- [+] API documentation (1 point)
- [+] Architecture diagrams and explanations (1 point)
- [+-] Consistent code style and formatting during CI/CD pipeline (1 point)
- [+] Code review participation and resolution (1 point)
- [-] Localization for Russian (RU) and English (ENG) languages (2 points)
- [+(3)] Good UI/UX design (up to 3 points)
- [-] Integration with external APIs (fitness trackers, health devices) (up to 5 points)
- [+] Comprehensive error handling and user feedback (up to 2 points)
- [+-] Advanced animations and transitions (up to 3 points)
- [+-] Widget implementation for native mobile elements (up to 2 points)
Total points implemented: 28,5/30 (excluding bonus points)
Note: For each implemented feature, provide a brief description or link to the relevant implementation below the checklist.


