{"id":19645916,"url":"https://github.com/austinadodo/the_ride_backend","last_synced_at":"2026-05-17T17:08:21.953Z","repository":{"id":231572045,"uuid":"775583348","full_name":"AustinAdodo/The_Ride_BackEnd","owner":"AustinAdodo","description":"The Back-End for a Ride sharing simulation application.","archived":false,"fork":false,"pushed_at":"2024-11-28T15:09:59.000Z","size":99443,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T23:57:51.290Z","etag":null,"topics":["api-rest","domain-driven-design","efficient-algorithm","java","repository-pattern","spring-data-jpa","spring-mvc","sql","testing","transactional"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AustinAdodo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-03-21T16:52:49.000Z","updated_at":"2024-11-28T15:10:03.000Z","dependencies_parsed_at":"2024-07-11T22:19:14.478Z","dependency_job_id":"185dad25-ad61-4362-9a86-da8d9c80ceab","html_url":"https://github.com/AustinAdodo/The_Ride_BackEnd","commit_stats":null,"previous_names":["austinadodo/the_ride_backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AustinAdodo/The_Ride_BackEnd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustinAdodo%2FThe_Ride_BackEnd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustinAdodo%2FThe_Ride_BackEnd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustinAdodo%2FThe_Ride_BackEnd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustinAdodo%2FThe_Ride_BackEnd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AustinAdodo","download_url":"https://codeload.github.com/AustinAdodo/The_Ride_BackEnd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AustinAdodo%2FThe_Ride_BackEnd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271420152,"owners_count":24756490,"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","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["api-rest","domain-driven-design","efficient-algorithm","java","repository-pattern","spring-data-jpa","spring-mvc","sql","testing","transactional"],"created_at":"2024-11-11T14:35:50.395Z","updated_at":"2026-05-17T17:08:16.931Z","avatar_url":"https://github.com/AustinAdodo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TheRideBackEnd\n\nThis project was completely written with Java (Spring MVC).\n\n## Development server\n\nRun the project in development mode on JetBrains Intellij IDEA or your Preferred IDE and Navigate to `http://localhost:8080/`. The application will automatically reload if you change any of the source files.\nIt is advisable to have the back-end running first before the front end.\nRabbitMQ uses `port 5672` on localhost and websocket endpoint is `http://localhost:8080/ws` .I strongly advise you leave this port open and have TCP enabled on your local machine or development server.\n\n## RabbitMQ Integration\n\nEnsure Erlang and RabbitMQ are both installed on your development machine and the installation is done with the administrator account to avoid complexities, by convention Erlang is installed before RabbitMQ.\nYou can find the solution to a common issue when configuring RabbitMQ [here](https://groups.google.com/g/rabbitmq-users/c/a6sqrAUX_Fg). This is an issue I encountered and successfully handled.\n\n## Testing\nIt is important to note that H2 databases do not support UUID primary key persistence,if your preference is to configure an\ninternal memory for unit testing. MSSQL was utilised for testing for this reason.\n   - ### Unit Tests\n     Unit Tests were configured using the inbuilt `@SpringBootTest` also ensure you use `@TestInstance(TestInstance.Lifecycle.PER_CLASS)`\n     to handle test class instances more efficiently. Mocking was utilised for full isolation of the repository class.\n     The test below simply checks if the `IsOnlyMySexAllowed` in the `Customer` class is correctly populated.\n     See the unit test [here](https://github.com/AustinAdodo/The_Ride_BackEnd/blob/main/src/test/java/the_ride/the_ride_backend/TheRideUnitTests.java)\n     ![The Ride Unit Test](https://drive.google.com/uc?export=view\u0026id=1zD2tfFyFns76Vxaihx_iKkrEK8XSzE_W)\n      \n   -  ### Integration Tests\n      `The MockMvc` library ws used for mocking REST verbs ('GET','POST','PUT' etc.) for integration tests.\n       These tests have been completely isolated from the main classes (in this case the class `Test_Customers` was used) \n       but a real database was utilised.\n       The integration tests check the `HTTPPOST` `HTTPPUT` methods at a controller level.\n      See the integration tests [here](https://github.com/AustinAdodo/The_Ride_BackEnd/blob/main/src/test/java/the_ride/the_ride_backend/TheRideBackEndApplicationTests.java) \n      \n      Ensure dependencies for integration test are singleton where possible (meaning one instance per Spring IoC container).For performance, consistency and simplicity.\n      ![Integration Tests Passed1](https://drive.google.com/uc?export=view\u0026id=1ghu8oVito7J_83n6tNZSFcvBxYx_hFPc)\n      ![Integration Tests Passed2](https://drive.google.com/uc?export=view\u0026id=1ROamz6HLJ88APbo6ZfkYYVukhepHg7tc)\n\n## Entity Relationship Diagram\nBelow is a diagram showing the relationship between entities.\n![entityDiagram](https://drive.google.com/uc?export=view\u0026id=1PgY6dgNAarB5H6URClCAxoz9FMq8ZVP4)\n\n## See:\nhttps://docs.spring.io/spring-framework/reference/core/beans/factory-scopes.html\n      \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinadodo%2Fthe_ride_backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faustinadodo%2Fthe_ride_backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinadodo%2Fthe_ride_backend/lists"}