|
| 1 | +[](LICENSE.txt) |
| 2 | + |
1 | 3 | # Backend Core |
2 | 4 |
|
3 | | -Commons utilities for backend enterprise application development |
| 5 | +Common utilities for backend enterprise application development. |
| 6 | + |
| 7 | +Backend Core provides a set of modular libraries to help you implement clean architecture (three-tier, hexagonal, DDD) in your enterprise Java applications. It includes: |
| 8 | + |
| 9 | +- **Model layer**: domain interfaces and DTOs (`backend-core-model`) |
| 10 | +- **Data layer**: persistence contracts (`backend-core-data`) and JPA-based implementations (`backend-core-data-impl`) |
| 11 | +- **Service layer**: business logic contracts (`backend-core-business`) and default implementations (`backend-core-business-impl`) |
| 12 | +- **Spring Boot integration**: auto-configuration support (`backend-core-business-spring-impl`) |
| 13 | + |
| 14 | +## Features |
| 15 | + |
| 16 | +- Generic CRUD interfaces and base implementations |
| 17 | +- Strongly-typed filtering and query support |
| 18 | +- Reusable service layering and transactional support |
| 19 | +- Spring Boot integration for easy wiring |
| 20 | +- Fully documented design and examples |
| 21 | + |
| 22 | +## Getting Started |
| 23 | + |
| 24 | +### Prerequisites |
| 25 | + |
| 26 | +- Java 17 or higher |
| 27 | +- Maven 3.x |
| 28 | + |
| 29 | +### Build from Source |
| 30 | + |
| 31 | +```bash |
| 32 | +git clone https://github.com/FlowingCode/backend-core.git |
| 33 | +cd backend-core |
| 34 | +mvn clean install |
| 35 | +``` |
| 36 | + |
| 37 | +### Generate Documentation |
| 38 | + |
| 39 | +```bash |
| 40 | +mvn site |
| 41 | +# Open target/site/index.html in your browser |
| 42 | +``` |
4 | 43 |
|
5 | | -## What is backend-core? |
| 44 | +## Usage |
6 | 45 |
|
7 | | -It's a set of common interfaces and implementations that allows to implement some of the principles of a clean architectural design for enterprise applications. |
| 46 | +### Available Modules |
8 | 47 |
|
9 | | -For more info, please refer to [Documentation](src/site/markdown/index.md) |
| 48 | +| Module | Description | |
| 49 | +|------------------------------------|----------------------------------------------------------------------| |
| 50 | +| `backend-core-model` | Domain interfaces, DTOs, exceptions and validation | |
| 51 | +| `backend-core-data` | DAO contracts (CRUD, Query, etc.) | |
| 52 | +| `backend-core-data-impl` | JPA implementations for DAO contracts | |
| 53 | +| `backend-core-business` | Service contracts (business logic interfaces) | |
| 54 | +| `backend-core-business-impl` | Default implementations for business/service contracts | |
| 55 | +| `backend-core-business-spring-impl`| Spring Boot auto-configuration for services and repositories | |
10 | 56 |
|
11 | | -Snapshots are available [here](https://maven.flowingcode.com/snapshots). |
| 57 | +Add the desired module(s) to your project's dependencies: |
12 | 58 |
|
13 | | -## Download release |
| 59 | +```xml |
| 60 | +<!-- Replace <artifactId> with the module(s) you need --> |
| 61 | +<dependency> |
| 62 | + <groupId>com.flowingcode.backend-core</groupId> |
| 63 | + <artifactId>backend-core-data</artifactId> |
| 64 | + <version>1.1.0-SNAPSHOT</version> |
| 65 | +</dependency> |
| 66 | +``` |
14 | 67 |
|
15 | | -Comming soon |
| 68 | +Snapshots are available at: |
16 | 69 |
|
17 | | -## Building |
| 70 | +```xml |
| 71 | +<repository> |
| 72 | + <id>flowingcode-snapshots</id> |
| 73 | + <url>https://maven.flowingcode.com/snapshots</url> |
| 74 | + <snapshots> |
| 75 | + <enabled>true</enabled> |
| 76 | + </snapshots> |
| 77 | +</repository> |
| 78 | +``` |
18 | 79 |
|
19 | | -- git clone repository |
20 | | -- mvn clean install |
| 80 | +For release versions, see Maven Central (coming soon). |
21 | 81 |
|
22 | | -## Release notes |
| 82 | +## Documentation |
23 | 83 |
|
24 | | -See [here](https://github.com/FlowingCode/backend-core/releases) |
| 84 | +Detailed design documentation and API reference are available via the Maven Site and in the source Markdown docs: |
25 | 85 |
|
26 | | -## Issue tracking |
| 86 | +- [Maven Site](target/site/index.html) |
| 87 | +- [Design documentation](src/site/markdown/index.md) |
27 | 88 |
|
28 | | -Issues for this project are tracked [here](https://github.com/FlowingCode/backend-core/issues). All bug reports and feature requests are appreciated. |
| 89 | +## Release Notes |
29 | 90 |
|
30 | | -## Contributions |
| 91 | +See the [GitHub releases](https://github.com/FlowingCode/backend-core/releases). |
31 | 92 |
|
32 | | -Contributions are welcome, but there are no guarantees that they are accepted as such. Process for contributing is the following: |
| 93 | +## Issue Tracking |
33 | 94 |
|
34 | | -- Fork this project |
35 | | -- Create an issue to this project about the contribution (bug or feature) if there is no such issue about it already. Try to keep the scope minimal. |
36 | | -- Develop and test the fix or functionality carefully. Only include minimum amount of code needed to fix the issue. |
37 | | -- Refer to the fixed issue in commit |
38 | | -- Send a pull request for the original project |
39 | | -- Comment on the original issue that you have implemented a fix for it |
| 95 | +Report bugs and request features on [GitHub Issues](https://github.com/FlowingCode/backend-core/issues). |
40 | 96 |
|
41 | | -## License & Author |
| 97 | +## Contributing |
42 | 98 |
|
43 | | -Commons-Backend is distributed under Apache License 2.0. For license terms, see LICENSE.txt. |
| 99 | +Contributions are welcome! Please follow the process outlined below: |
44 | 100 |
|
45 | | -Commons-Backend is written by Flowing Code |
| 101 | +1. Fork this repository. |
| 102 | +2. Create an issue for your contribution (bug or feature request), or select an existing one. |
| 103 | +3. Develop and test your changes carefully; include only the minimum code required. |
| 104 | +4. Reference the issue in your commit messages. |
| 105 | +5. Send a pull request and comment on the issue once it's ready. |
46 | 106 |
|
47 | | -# Developer Guide |
| 107 | +## License |
48 | 108 |
|
49 | | -Comming soon |
| 109 | +Apache License 2.0. See [LICENSE.txt](LICENSE.txt). |
0 commit comments