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.mp4
- 🧩 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.
Using Tilt toolkit
Ensure you have a kind cluster created:
kind create clusterThen 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
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 bootRunIf 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 devFirst, 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 testReleaseThere 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:uiFor running unit tests:
yarn testInspired by person-crud.
Pedro Henrique de Almeida © 2025 - All rights reserved