You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
KnowHow - Educational Platform for Knowledge Sharing
About the Project
KnowHow is a microservices-based educational platform that allows users to create, sell, and purchase educational courses. The system includes moderation functionality, rating systems, user balance management, and email notifications.
Key Features
Authentication and authorization using JWT tokens stored in cookies
Course creation and management with moderation system
Balance system for purchasing courses with internal currency
Rating system for course evaluation by users
Email notifications for events (verification, purchase, moderation)
Tags and search for convenient course navigation
User profiles with purchase history and ratings
Microservices
Core Service — main service implementing business logic:
User management
Course CRUD operations
Moderation system
Course purchasing
Ratings
Balance management
Notification Service — notification service:
Email sending
RabbitMQ event processing
Processing statistics
Shared — shared library:
Event DTOs
Common models and utilities
Technology Stack
Core Service
Technology
Version
Purpose
Java
21
Main language
Spring Boot
-
Framework
Spring Security
-
Authentication and authorization
Spring Data JPA
-
ORM and database operations
PostgreSQL
17.5
Primary database
Redis
7.2
Caching, verification code storage
RabbitMQ
4.2
Message broker
MapStruct
-
Object mapping
Nimbus JOSE JWT
-
JWT tokens
Flyway
-
Database migrations
Resilience4j
-
Retry mechanisms
SpringDoc OpenAPI
-
Swagger documentation
Notification Service
Technology
Spring Boot Starter Mail
Spring AMQP
Infrastructure
Component
Docker
Jib
Lombok
Installation and Setup
Prerequisites
JDK 21 or higher
Maven 3.9+
Docker and Docker Compose
Step 1: Clone Repository
git clone https://github.com/your-username/knowhow.git
cd knowhow
# Start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose down
# Stop with volume removal
docker-compose down -v
Monitoring
RabbitMQ Metrics
Confirm logging every 10 minutes
Success/failure statistics
Notification Statistics
Logging every 60 minutes
Success/failure processing counts
Messages per second throughput
License
This project is distributed under the MIT License. See LICENSE file for details.