Skip to content

Customer Relationship Management | Java 21 | Spring Boot v3.3.1 | PostgreSQL | Spring Data JPA | JWT | REST API | Hibernate | Lombok | MapStruct

Notifications You must be signed in to change notification settings

nidabaser/CRM_Spring_Boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRM with Spring Boot

In progress

Overview

This is an open-source Customer Relationship Management (CRM) system. The project is still under development. Contributions are welcome. If you want to contribute, you can open a pull request.

Technologies

Java Spring Boot Maven PostgreSQL REST Hibernate MapStruct JWT Swagger Intellij Git Github

Features

  • Recording and managing customer information
  • Create and manage offers
  • Recording and tracking expenses
  • Product and category management
  • Interview and meeting records
  • Email and phone-based customer search
  • Full CRUD operations for customers

Directory Schema for Best Practices

src/
├── main/
│   ├── java/
│   │   └── com/
│   │       └── example/
│   │           └── yourapp/
│   │               ├── config/              # Konfigürasyon dosyaları
│   │               │   ├── SwaggerConfig.java
│   │               │   ├── SecurityConfig.java
│   │               │   └── AppConfig.java
│   │               ├── controller/          # REST API denetleyicileri
│   │               │   ├── UserController.java
│   │               │   └── ListingController.java
│   │               ├── dto/                 # Veri transfer objeleri
│   │               │   ├── request/
│   │               │   │   ├── UserRequest.java
│   │               │   │   └── ListingRequest.java
│   │               │   ├── response/
│   │               │   │   ├── UserResponse.java
│   │               │   │   └── ListingResponse.java
│   │               │   └── Result.java
│   │               ├── entity/              # JPA entity sınıfları
│   │               │   ├── BaseEntity.java
│   │               │   ├── User.java
│   │               │   └── Listing.java
│   │               ├── exception/           # Hata işleme
│   │               │   ├── GlobalExceptionHandler.java
│   │               │   ├── CustomException.java
│   │               │   └── NotFoundException.java
│   │               ├── mapper/              # MapStruct Mapper sınıfları
│   │               │   ├── UserMapper.java
│   │               │   └── ListingMapper.java
│   │               ├── repository/          # JPA repository sınıfları
│   │               │   ├── UserRepository.java
│   │               │   └── ListingRepository.java
│   │               ├── service/             # Servis arayüzleri
│   │               │   ├── UserService.java
│   │               │   └── ListingService.java
│   │               │   └── impl/            # Servis implementasyonları
│   │               │       ├── UserServiceImpl.java
│   │               │       └── ListingServiceImpl.java
│   │               ├── util/                # Yardımcı sınıflar ve araçlar
│   │               │   └── UtilityClass.java
│   │               ├── security/            # Güvenlik yapılandırmaları
│   │               │   ├── AuditConfiguration.java
│   │               │   ├── AuditorAwareImpl.java
│   │               │   ├── JwtAuthenticationFilter.java
│   │               │   ├── JwtTokenProvider.java
│   │               │   ├── CustomUserDetailsService.java
│   │               │   └── SecurityConstants.java
│   │               └── YourAppApplication.java # Spring Boot ana uygulama sınıfı
│   └── resources/
│       ├── application.properties           # Uygulama yapılandırma dosyası
│       └── application.yml                  # YML yapılandırma dosyası (eğer kullanılıyorsa)
└── test/
├── java/
│   └── com/
│       └── example/
│           └── yourapp/
│               ├── controller/          # Test sınıfları (kontrollerler)
│               ├── service/             # Test sınıfları (servisler)
│               └── YourAppApplicationTests.java # Test ana sınıfı
└── resources/
└── application.properties           # Test yapılandırma dosyası

Entity Diagram Sample (not finished will be updated)

CRM_Entity_Diagram.png

Requirements

  • Java 21+
  • PostgreSQL 16
  • IntelliJ IDEA (or other IDE)

Installation

  1. Clone the repository:
     git clone https://github.com/nidabaser/CRM_Spring_Boot.git
    cd crm-spring-boot
  2. Configure the database.
    • Create a PostgreSQL database named crm.
    • Update the environment variables:
    spring.datasource.url=${YOUR_DB_URL}
    spring.datasource.username=${YOUR_DB_USERNAME}
    spring.datasource.password=${YOUR_DB_PASSWORD}
    
  3. Build the project:
    mvn clean install
  4. Run the project:
    mvn spring-boot:run
  5. Usage: Once the application is running, you can access the API documentation at:
    http://localhost:8080/swagger-ui.html

Contributing

  • Fork the repository.
  • Create your feature branch: git checkout -b feature/your-feature
  • Commit your changes: git commit -m 'Add some feature'
  • Push to the branch: git push origin feature/your-feature
  • Open a pull request.

License

This project is licensed under the MIT License.

About

Customer Relationship Management | Java 21 | Spring Boot v3.3.1 | PostgreSQL | Spring Data JPA | JWT | REST API | Hibernate | Lombok | MapStruct

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages