This is the documentation for the User Management System API. You can use this API to perform various actions such as login, logout, refresh token, get a list of users, get a specific user by ID, update a user, and delete a user.
The system follows the clean architecture principles, with a separation of concerns between the different layers. https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
- Clone the repository:
git clone [email protected]:irvankadhafi/user-management-system.git
- Run
docker-compose up
- Migrate database:
cd user-service && go run . migrate
- Seed user data
cd user-service && go run . seeder
- Seed rbac
cd user-service && go run . go run . migrate-rbac-permission
- Run server
make run
- Implement all unit tests
- Decomposing rbac mechanism to new service named auth-service
- Using MongoDB as database
- Create kubernetes deployment config
- Admin:
email: [email protected] password: 123456
- Member
email: [email protected] password: 123456
The following technologies were used to build this system:
- Golang for the backend server
- PostgreSQL for the database
- Redis for cache
- Login user with email and password
- Logout user
- Refresh token
- Admin and member roles, with different levels of access to CRUD functionality
- Redis cache to improve performance
- Logging for easier debugging