Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

SpringERP

SpringBoot Fork of iDempiere Project

# SpringERP - Modern iDempiere Backend

## Project Purpose

SpringERP is a modern Spring Boot-based backend application designed to interface with the existing iDempiere ERP database. The primary goal of this project is to provide a flexible and scalable API layer that can be used to build new applications or integrate with existing systems while leveraging the robust data model and Application Dictionary metadata of iDempiere.

This project aims to:
1. Modernize the backend infrastructure of iDempiere using Spring Boot.
2. Provide RESTful API endpoints for iDempiere entities.
3. Utilize the existing iDempiere database schema and Application Dictionary metadata.
4. Implement dynamic form metadata retrieval for building flexible user interfaces.
5. Enhance the development experience and maintainability of iDempiere-based applications.

## Key Features

1. **Dynamic Form Metadata**: Retrieve form structure and field information dynamically based on iDempiere's Application Dictionary.
2. **Entity Resolution**: Automatically resolve and display meaningful information for ID fields.
3. **Flexible Data Access**: Utilize Spring Data JPA for efficient database operations while maintaining compatibility with the existing iDempiere schema.
4. **RESTful API**: Expose iDempiere functionality through a modern RESTful API.
5. **Aspect-Oriented Programming**: Implement cross-cutting concerns like entity resolution using Spring AOP.

## Project Structure

The project follows a standard Spring Boot application structure:

- `entity`: JPA entity classes representing iDempiere database tables.
- `repository`: Spring Data JPA repositories for database access.
- `service`: Business logic and service layer.
- `controller`: RESTful API endpoints.
- `model`: Data transfer objects (DTOs) for API responses.
- `config`: Configuration classes for Spring Boot.
- `aspect`: Aspect-oriented programming components.
- `strategy`: Strategy pattern implementations for entity resolution.

##Project Structure
 
|____logs
|____target
| |____maven-archiver
| | |____pom.properties
| |____backend-1.0-SNAPSHOT.jar.original
| |____generated-sources
| | |____annotations
| |____classes 
|____src
| |____main
| | |____java
| | | |____com
| | | | |____idempiere
| | | | | |____erp
| | | | | | |____entity
| | | | | | | |____ADWindow.java
| | | | | | | |____ADTab.java
| | | | | | | |____ADTable.java
| | | | | | | |____ADColumn.java
| | | | | | | |____ADMenu.java
| | | | | | | |____ADField.java
| | | | | | |____App.java
| | | | | | |____config
| | | | | | | |____JpaConfig.java
| | | | | | |____aspect
| | | | | | | |____ResolutionAspect.java
| | | | | | |____BackendApplication.java
| | | | | | |____controller
| | | | | | | |____FormMetadataController.java
| | | | | | |____service
| | | | | | | |____FormMetadataService.java
| | | | | | | |____ResolutionService.java
| | | | | | |____repository
| | | | | | | |____ADTableRepository.java
| | | | | | | |____ADFieldRepository.java
| | | | | | | |____ADMenuRepository.java
| | | | | | | |____ADWindowRepository.java
| | | | | | | |____ADColumnRepository.java
| | | | | | | |____ADTabRepository.java
| | | | | | |____model
| | | | | | | |____TabMetadata.java
| | | | | | | |____FormMetadataResponse.java
| | | | | | | |____FieldMetadata.java
| | | | | | |____strategy
| | | | | | | |____ResolutionStrategy.java
| | | | | | | |____UserResolutionStrategy.java
| | | | | | | |____NumericIdResolutionStrategy.java
| | |____resources
| | | |____application.properties
| |____test
|____pom.xml  

## Setup and Installation

1. Clone the repository:

git clone https://github.com/red1oon/SpringERP.git


2. Navigate to the project directory:

cd SpringERP


3. Configure the database connection:
Edit `src/main/resources/application.properties` and update the following properties with your iDempiere database details:

spring.datasource.url=jdbc:postgresql://localhost:5432/idempiere spring.datasource.username=your_username spring.datasource.password=your_password


4. Build the project:

mvn clean install


5. Run the application:

mvn spring-boot:run


## Usage

Once the application is running, you can access the API endpoints. Here are some example endpoints:

- Get form metadata: `GET /api/forms/{windowId}/metadata`

## Contributing

Contributions to SpringERP are welcome. Please follow these steps to contribute:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them with clear, descriptive messages.
4. Push your changes to your fork.
5. Submit a pull request to the main repository.

## License

This project is licensed under the [GNU General Public License v2.0](LICENSE).

## Acknowledgements

This project builds upon the work of the iDempiere community and aims to provide a modern alternative for backend development while maintaining compatibility with the iDempiere data model.

About

ERP Fork of iDempiere Project

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages