Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fintech-lsi/user-service
A Spring Boot microservice for managing user accounts, authentication, and user-related operations in a fintech ecosystem.
https://github.com/fintech-lsi/user-service
devops docker jenkins maven sonarqube spring-boot test
Last synced: 7 days ago
JSON representation
A Spring Boot microservice for managing user accounts, authentication, and user-related operations in a fintech ecosystem.
- Host: GitHub
- URL: https://github.com/fintech-lsi/user-service
- Owner: Fintech-LSI
- Created: 2024-12-05T00:34:22.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-01-20T00:19:16.000Z (7 days ago)
- Last Synced: 2025-01-20T00:27:20.120Z (7 days ago)
- Topics: devops, docker, jenkins, maven, sonarqube, spring-boot, test
- Language: Java
- Homepage:
- Size: 2.24 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 👤 User Service
[![Build Status](https://img.shields.io/jenkins/build?jobUrl=your-jenkins-url)](https://jenkins-url)
[![Quality Gate Status](https://img.shields.io/sonar/quality_gate/user-service?server=http://54.86.47.1:9000)](http://54.86.47.1:9000)
[![Docker Pulls](https://img.shields.io/docker/pulls/your-repo/user-service)](https://hub.docker.com/r/your-repo/user-service)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)## 📋 Table of Contents
- [Overview](#-overview)
- [Features](#-features)
- [Architecture](#-architecture)
- [Tech Stack](#-tech-stack)
- [Project Structure](#-project-structure)
- [Pipeline](#-pipeline)
- [Getting Started](#-getting-started)
- [API Documentation](#-api-documentation)
- [Configuration](#-configuration)
- [Monitoring](#-monitoring)
- [Deployment](#-deployment)
- [Contributing](#-contributing)
- [Team](#-team)
- [License](#-license)## 🎯 Overview
A comprehensive user management microservice built with Spring Boot that handles user accounts, profiles, and preferences within the FinTechPro ecosystem. This service provides centralized user data management with seamless integration with other platform services.
## ✨ Features
- 👤 **User Account Management**
- Registration
- Profile updates
- Account status
- 📧 **Email Services**
- Verification
- Notifications
- Password reset
- 🎯 **Favorite Currencies**
- Add/Remove favorites
- Preference tracking
- Real-time updates
- 🖼️ **Image Handling**
- Profile pictures
- Document uploads
- Secure storage
- 🔄 **Service Integration**
- Currency service connectivity
- Real-time data sync
- 📊 **User Analytics**
- Activity tracking
- Usage patterns
- Preference analysis## 🏗 Architecture
The service follows a microservices architecture pattern:
```
┌─────────────┐
┌──▶│ Currency │
┌──────────────┐ REST │ │ Service │
│ User │◀──────────▶│ └─────────────┘
│ Service │ │ ┌─────────────┐
└──────────────┘ AWS └──▶│ S3 for │
Services │ Images │
└─────────────┘
```## 🛠 Tech Stack
## 📂 Project Structure
```
src/main/java/com.fintech.user/
├── 📊 config/ # Configuration files
├── 🎮 controller/ # REST controllers
├── 📦 dto/ # Data Transfer Objects
├── 🏢 entity/ # Domain entities
├── 📚 repository/ # Data repositories
│ ├── FavoriteCurrenciesRepository
│ ├── ImageRepository
│ └── UserRepository
├── 🔧 service/ # Business logic
│ ├── feign_clients/
│ │ └── CurrencyFeignClientService
│ ├── mapper/
│ │ └── UserMapper
│ ├── EmailService
│ ├── FavoriteCurrencyService
│ ├── ImageService
│ └── UserService
└── 🚀 UserApplication.java
```## 🔄 Pipeline
Our robust CI/CD pipeline ensures reliable deployments:
![CI/CD Pipeline](/images/pipeline-diagram.png)
1. 📥 **Code Checkout**
- Automated GitHub webhook triggers
- Clean workspace preparation2. 🔍 **SonarQube Analysis**
- Code quality verification
- Security vulnerability scanning
- Test coverage assessment
- Quality gate enforcement3. 🏗️ **Maven Build**
- Source compilation
- Unit test execution
- JAR packaging
- Dependency validation4. 🐳 **Docker Build & Push**
- No-cache image building
- AWS ECR authentication
- Image tagging and pushing5. ☸️ **EKS Deployment**
- Kubernetes manifest application
- Deployment verification
- Health check monitoring## 🚀 Getting Started
```bash
# Clone the repository
git clone https://github.com/your-org/user-service.git# Navigate to project directory
cd user-service# Install dependencies and build
mvn clean install# Run locally
mvn spring-boot:run -Dspring.profiles.active=local# Run tests
mvn test# Build Docker image
docker build -t user-service .
```## 📊 Monitoring
Integrated monitoring includes:
- 📈 Application metrics via Prometheus
- 🔍 Performance tracking through Grafana
- ⚡ Resource utilization monitoring
- 🚨 Error tracking and alerting
- 📝 Automated logging## 👥 Team
| Avatar | Name | Role | GitHub |
|---------------------------------------------------------------------------------------------------------|------|------|--------|
| | Zakariae Azarkan | DevOps Engineer | [@zachary013](https://github.com/zachary013) |
| | El Mahdi Id Lahcen | Frontend Developer | [@goalaphx](https://github.com/goalaphx) |
| | Hodaifa | Cloud Architect | [@hodaifa-ech](https://github.com/hodaifa-ech) |
| | Khalil El Houssine | Backend Developer | [@khalilh2002](https://github.com/khalilh2002) |
| | Mohamed Amine BAHASSOU | ML Engineer | [@Medamine-Bahassou](https://github.com/Medamine-Bahassou) |## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
Built with ❤️ by the FinTech Team