Skip to content

Shubh2-0/UserManagementSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

User Management System ๐Ÿ‘ค

Poster

A Powerful RESTful API for Seamless User Management! ๐ŸŒŸ

User Management System is a robust, production-ready backend application built on the powerful combination of Spring Boot and MySQL. It provides a clean and efficient way to manage users through RESTful API endpoints, making it perfect for any application that requires user data handling. ๐Ÿš€๐Ÿ’ผ

With User Management System, developers can easily integrate user creation and retrieval functionalities into their applications. The project follows industry-standard practices with a clean layered architecture, input validation, and proper exception handling. Whether you're building a web app, mobile backend, or microservice, this system provides a solid foundation for user management! ๐Ÿ’ก๐Ÿ”ง

Key Features

โœจ RESTful API Design: User Management System follows REST principles, providing intuitive and predictable endpoints for seamless integration with any frontend or service.

โœจ Input Validation: Built-in Jakarta Bean Validation ensures that all user data meets required criteria. Invalid emails or empty usernames are caught before they hit the database!

โœจ Clean Architecture: Following the Controller-Service-Repository pattern, the codebase is organized, maintainable, and scalable. Each layer has a clear responsibility.

โœจ Custom Exception Handling: Meaningful error responses with custom exceptions like UserNotFoundException and InvalidUserDataException make debugging a breeze.

โœจ Auto Schema Generation: Hibernate automatically creates and updates database tables, so you can focus on building features instead of writing SQL scripts.

User Management ๐Ÿ‘ฅ๐Ÿ’ผ

User Management System offers a streamlined approach to handling user data. Create new users with validated input and retrieve user information instantly through clean API endpoints. The system ensures data integrity while providing lightning-fast responses.

User Management

With User Management System's robust architecture, you can confidently build applications that scale while maintaining clean, readable code!

API Endpoints ๐Ÿ“ก

Method Endpoint Description
GET /api/users/{id} Retrieve a user by their ID
POST /api/users Create a new user

Create User Request Example:

{
  "username": "john_doe",
  "email": "john@example.com"
}

Response Example:

{
  "id": 1,
  "username": "john_doe",
  "email": "john@example.com"
}

Architecture ๐Ÿ—๏ธ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   CLIENT REQUEST                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚
                         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๐ŸŽฎ CONTROLLER LAYER                      โ”‚
โ”‚              UserController.java                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚
                         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              โš™๏ธ SERVICE LAYER                         โ”‚
โ”‚              UserService.java                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚
                         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๐Ÿ“ฆ REPOSITORY LAYER                      โ”‚
โ”‚              UserRepository.java                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚
                         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๐Ÿฌ MySQL DATABASE                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tools Used ๐Ÿ› ๏ธ

Java
Java 17
Spring Boot
Spring Boot
MySQL
MySQL
Maven
Maven
Hibernate
Hibernate
Lombok
Lombok
JPA
Spring Data JPA
Postman
Postman
IntelliJ
IntelliJ IDEA
VS Code
VS Code
GitHub
GitHub
Git
Git

Get Started ๐Ÿš€

Ready to set up your own User Management System? Follow these simple steps to get started:

  1. Clone the repository to your local machine using the command: git clone https://github.com/Shubh2-0/UserManagementSystem.git.

  2. Ensure you have Java Development Kit (JDK 17+) and Apache Maven installed on your system.

  3. Create a MySQL database:

    CREATE DATABASE Cl_User_Management_System;
  4. Update the database credentials in src/main/resources/application.properties if needed:

    spring.datasource.username=your_username
    spring.datasource.password=your_password
  5. Navigate to the project directory: cd UserManagementSystem/User_management_System.

  6. Build the project using Maven: mvn clean install.

  7. Launch the application: mvn spring-boot:run.

  8. Access the API at http://localhost:8080/api/users.

  9. Test the endpoints using Postman or any REST client! ๐ŸŽ‰

Project Structure ๐Ÿ“

User_management_System/
โ”œโ”€โ”€ ๐Ÿ“„ pom.xml
โ”œโ”€โ”€ ๐Ÿ“„ mvnw / mvnw.cmd
โ””โ”€โ”€ ๐Ÿ“‚ src/
    โ””โ”€โ”€ ๐Ÿ“‚ main/
        โ”œโ”€โ”€ ๐Ÿ“‚ java/com/CL/
        โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ CognitionLabsUserManagementSystemApplication.java
        โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ entity/
        โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ User.java
        โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ service/
        โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ UserService.java
        โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ repository/
        โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ UserRepository.java
        โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ controller/
        โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ UserController.java
        โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ exception/
        โ”‚       โ”œโ”€โ”€ ๐Ÿ“„ UserNotFoundException.java
        โ”‚       โ””โ”€โ”€ ๐Ÿ“„ InvalidUserDataException.java
        โ””โ”€โ”€ ๐Ÿ“‚ resources/
            โ””โ”€โ”€ ๐Ÿ“„ application.properties

Contribute ๐Ÿค

We believe in the power of collaboration! You're invited to contribute to the growth and improvement of User Management System. Here's how you can get involved ๐Ÿค—:

  1. Fork the repository and clone it: git clone https://github.com/your-username/UserManagementSystem.git.

  2. Create a new branch: git checkout -b feature/amazing-feature.

  3. Make your awesome changes and commit them: git commit -m "Add amazing feature".

  4. Push your branch to the repository: git push origin feature/amazing-feature.

  5. Open a pull request on the GitHub repository and let us review your changes.

Acknowledgements ๐Ÿ™

User Management System was developed as a project for learning Spring Boot, REST APIs, and database integration. We extend our gratitude to the developers and contributors of Spring Boot, Hibernate, and all the libraries used in this project for their remarkable work.

๐Ÿ“ฌ Contact

If you want to contact me, you can reach me through below handles.

linkedinโ€ƒ mail-meโ€ƒ whatsapp-meโ€ƒ


Made with โค๏ธ using Spring Boot

โญ Star this repo if you find it helpful!

About

User Management System is a robust, production-ready backend application built on the powerful combination of Spring Boot and MySQL. It provides a clean and efficient way to manage users through RESTful API endpoints, making it perfect for any application that requires user data handling.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages