Skip to content

qedrohenrique/users-crud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Users CRUD


Empowering Seamless User Management at Scale

last-commit repo-top-language repo-language-count

Built with these tools and technologies:

TypeScript Next JS TailwindCSS Zod ESLint React Hook Form React Query Vitest Playwright

Kotlin Spring PostgreSQL Redis RabbitMQ Swagger

Docker GitHub Actions Kubernetes

Overview

users-crud is a comprehensive user management microservice that enables seamless creation, retrieval, updating, and deletion of user data within a scalable architecture. Leveraging modern tools like Spring Boot, Next.js, and Kubernetes, it provides a robust foundation for user operations, authentication, and real-time logging.

Demo

demo.mp4

Features

  • 🧩 Database & Messaging: Containerized PostgreSQL, RabbitMQ, and Redis for reliable data storage, messaging, and caching.
  • 🚀 Scalable Deployment: Automated build and deployment pipelines with Tiltfile and Kubernetes support.
  • 🔒 Secure & Role-Based: Environment-specific secrets and role management for secure access control.
  • 🌐 Internationalization: Built-in support for multiple languages, enhancing global accessibility.
  • 📊 Observability: Real-time logging and monitoring for improved debugging and system insights.

💻 Running

Ensure you have a kind cluster created:

kind create cluster

Then you can easily run all k8s nodes by simply typing on your shell tilt up. You should see, at least, resources for:

  • Frontend application
  • Backend application
  • RabbitMQ
  • Postgres
  • Redis
  • Backend Secrets

Manually

First of all, ensure you have Postgres, RabbitMQ and Redis services running. You can run docker compose up.

For running the backend application, simply type:

cd backend
cp .env.example .env
./gradlew bootRun

If you want to, you can change spring.flyway.enabled or spring.jpa.hibernate.ddl-auto=update in application.properties for automatic creating the schemas. But have in mind that flyway migrations were made thinking in the testing database. You can also check API docs at http://localhost:3001/api-docs.

For the frontend:

cd frontend
cp .env.example .env
npm install

next dev
# or
yarn dev

🧪 Testing

Backend

First, ensure you have users_crud_test. When running the tests, flyway should automatically run the migrations for each isolate test. Then you can test, depending on your interest, by typing:

./gradlew test
# or
./gradlew testDebug
# or
./gradlew testRelease

Frontend

There are both E2E tests and unit tests. For running E2E tests, but ensure that your database has runned flyway migrations. Also, CI/CD isn't running these.

yarn playwright:test
# or through the ui
yarn playwright:ui

For running unit tests:

yarn test

Inspired by person-crud.

Pedro Henrique de Almeida © 2025 - All rights reserved

About

Users management and logging monorepo.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors