{"id":20532063,"url":"https://github.com/monogramm/spring-rest-api-starter","last_synced_at":"2025-07-13T22:07:22.618Z","repository":{"id":46618427,"uuid":"117836695","full_name":"Monogramm/spring-rest-api-starter","owner":"Monogramm","description":":coffee: A \"simple\" starter project custom RESTful API using Spring.","archived":false,"fork":false,"pushed_at":"2024-10-03T17:24:47.000Z","size":1010,"stargazers_count":16,"open_issues_count":1,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T06:37:37.887Z","etag":null,"topics":["java","spring","spring-boot","spring-data","spring-security","starter-kit"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Monogramm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-01-17T13:00:35.000Z","updated_at":"2025-02-26T08:32:15.000Z","dependencies_parsed_at":"2025-04-14T06:41:30.035Z","dependency_job_id":null,"html_url":"https://github.com/Monogramm/spring-rest-api-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Monogramm/spring-rest-api-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monogramm%2Fspring-rest-api-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monogramm%2Fspring-rest-api-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monogramm%2Fspring-rest-api-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monogramm%2Fspring-rest-api-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Monogramm","download_url":"https://codeload.github.com/Monogramm/spring-rest-api-starter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Monogramm%2Fspring-rest-api-starter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265212496,"owners_count":23728547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","spring","spring-boot","spring-data","spring-security","starter-kit"],"created_at":"2024-11-16T00:12:29.943Z","updated_at":"2025-07-13T22:07:22.609Z","avatar_url":"https://github.com/Monogramm.png","language":"Java","readme":"# README\n\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](http://www.gnu.org/licenses/agpl.html)\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/Monogramm/spring-rest-api-starter)\n[![Docker Image CI](https://github.com/Monogramm/spring-rest-api-starter/actions/workflows/hooks.yml/badge.svg)](https://github.com/Monogramm/spring-rest-api-starter/actions/workflows/hooks.yml)\n[![codecov](https://codecov.io/gh/Monogramm/spring-rest-api-starter/branch/master/graph/badge.svg)](https://codecov.io/gh/Monogramm/spring-rest-api-starter)\n[![Docker Automated buid](https://img.shields.io/docker/build/monogramm/spring-rest-api-starter.svg)](https://hub.docker.com/r/monogramm/spring-rest-api-starter/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/monogramm/spring-rest-api-starter.svg)](https://hub.docker.com/r/monogramm/spring-rest-api-starter/)\n\n### What is this repository\n\nA 'simple' starter project custom RESTful API.\n\nThe project uses Spring Boot, a connection to a database and a connection to a mail server.\n\n## Prerequisites\n\n0.  Globally installed [Git](https://git-scm.com/), [JDK](https://www.java.com/download/) (8 at least) and [Maven](https://maven.apache.org/).\n\nThe project should work with the following databases:\n\n-   [MySQL](https://www.mysql.com/) / [MariaDB](https://mariadb.org/)\n-   [PostgreSQL](https://www.postgresql.org/)\n-   [Java H2](http://www.h2database.com)\n\nEdit the `application.properties` depending on the database system you need (see _installation_).\n\n### Installation\n\n-   `git clone https://github.com/monogramm/spring-rest-api-starter.git`\n-   `cd spring-rest-api-starter`\n\nFinally, edit the properties in `application.properties` to your needs (name, db, mail, etc...) and compile the project.\n\n-   `mvn clean install`\n\nThe application will automatically setup the database. See `InitialDataLoader.java` for details.\n\n## Run Backend API\n\n-   `mvn spring-boot:run`\n\nYou can now access your API at `http://localhost:8080/spring-rest-api-starter/api/`\n\n## Tests\n\n### Unit Tests\n\n-   `mvn test`\n\n### Integration Tests\n\n-   `mvn verify`\n\nBe careful as the IT will startup the server and test the actual functions. This means that all application properties must be valid for integration, even mail ones (not mocked).\n\nThe IT use there own [application.properties](src/integration-test/resources/application.properties) which defaults to a in memory H2 database and in memory GreenMail mail server.\n\n## Release\n\n-   `mvn release:prepare`\n-   `mvn release:perform`\n\n### Documentation\n\nIt is possible to generate documentation using JavaDoc\n\n-   `mvn site`\n\nAlso, the application uses Swagger to document the API.\nWhen running the backend API, go to  `http://localhost:8080/spring-rest-api-starter/api/v2/api-docs`\n\n### Docker\n\nA Dockerfile and docker-compose template are available at the root of this project.\nAfter building the project, the docker image can be created:\n\n    mvn clean install\n    docker build --build-arg=target/*.jar -t \"monogramm/docker-spring-rest-api-starter\" \".\"\n\n### Tools\n\nA helper script is available at the root of this project: `tools.sh`\nIt can be used for common operations\n\n### Contribution guidelines\n\nSee [CONTRIBUTING](CONTRIBUTING.md) file.\n\n### License\n\nThis product is distributed under the GNU Affero General Public License v3.0.\nSee the complete license in the bundle:\n\n[Read the license](https://github.com/Monogramm/spring-rest-api-starter/blob/master/LICENSE)\n\n### Who do I talk to?\n\n-   [madmath03](https://github.com/madmath03)\n\n### Awesome contributors\n\n-   [ebacem](https://github.com/ebacem)\n-   [vinctix](https://github.com/vinctix)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonogramm%2Fspring-rest-api-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonogramm%2Fspring-rest-api-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonogramm%2Fspring-rest-api-starter/lists"}