Skip to content

A Spring Boot microservice for managing user accounts, authentication, and user-related operations in a fintech ecosystem.

Notifications You must be signed in to change notification settings

Fintech-LSI/User-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👤 User Service

Build Status Quality Gate Status Docker Pulls License: MIT

📋 Table of Contents

🎯 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

Spring Boot Java PostgreSQL AWS Docker Kubernetes Jenkins

📂 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

  1. 📥 Code Checkout

    • Automated GitHub webhook triggers
    • Clean workspace preparation
  2. 🔍 SonarQube Analysis

    • Code quality verification
    • Security vulnerability scanning
    • Test coverage assessment
    • Quality gate enforcement
  3. 🏗️ Maven Build

    • Source compilation
    • Unit test execution
    • JAR packaging
    • Dependency validation
  4. 🐳 Docker Build & Push

    • No-cache image building
    • AWS ECR authentication
    • Image tagging and pushing
  5. ☸️ EKS Deployment

    • Kubernetes manifest application
    • Deployment verification
    • Health check monitoring

🚀 Getting Started

# 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
El Mahdi Id Lahcen Frontend Developer @goalaphx
Hodaifa Cloud Architect @hodaifa-ech
Khalil El Houssine Backend Developer @khalilh2002
Mohamed Amine BAHASSOU ML Engineer @Medamine-Bahassou

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ by the FinTech Team

About

A Spring Boot microservice for managing user accounts, authentication, and user-related operations in a fintech ecosystem.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •