{"id":18632127,"url":"https://github.com/bertuginal/real-estate-final-project","last_synced_at":"2026-05-05T04:31:21.189Z","repository":{"id":250120189,"uuid":"825965171","full_name":"bertuginal/real-estate-final-project","owner":"bertuginal","description":"FMSS \u0026 Patika+ Fullstack Bootcamp Real Estate Final Project","archived":false,"fork":false,"pushed_at":"2024-07-23T20:49:34.000Z","size":253,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-08T05:44:04.225Z","etag":null,"topics":["hibernate","java","maven","model-mapper","open-feign","postgresql","rabbitmq","spring-boot","swagger"],"latest_commit_sha":null,"homepage":"https://github.com/bertuginal/real-estate-final-project","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/bertuginal.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-07-08T21:11:28.000Z","updated_at":"2024-09-20T16:24:26.000Z","dependencies_parsed_at":"2024-07-25T10:13:55.365Z","dependency_job_id":null,"html_url":"https://github.com/bertuginal/real-estate-final-project","commit_stats":null,"previous_names":["bertuginal/real-estate-final-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bertuginal/real-estate-final-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertuginal%2Freal-estate-final-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertuginal%2Freal-estate-final-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertuginal%2Freal-estate-final-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertuginal%2Freal-estate-final-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bertuginal","download_url":"https://codeload.github.com/bertuginal/real-estate-final-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertuginal%2Freal-estate-final-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32635405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"online","status_checked_at":"2026-05-05T02:00:06.033Z","response_time":54,"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":["hibernate","java","maven","model-mapper","open-feign","postgresql","rabbitmq","spring-boot","swagger"],"created_at":"2024-11-07T05:10:08.817Z","updated_at":"2026-05-05T04:31:21.134Z","avatar_url":"https://github.com/bertuginal.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\u003ch1\u003e :sparkles: REAL ESTATE FINAL PROJECT :sparkles: \u003c/h1\u003e\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\u003ch2\u003e 🌐 FMSS \u0026 Patika+ Fullstack Web Bootcamp 🌐 \u003c/h2\u003e \u003c/div\u003e\n\n## ❓ What is this project?\nThis project is a real estate website completion project developed as a full stack using Java, Spring Boot in the back-end and React and Next.js in the front-end.\n\n\u0026nbsp; \n\n## 🔎 Overview\n\nThe real estate website project is designed to allow the user to create advertisements by communicating with each other through many microservices.\n\n* User can check balance and usage time by looking at profile details.\n\n* User can create, edit, delete advertisement and access its details.\n\n* The user can turn his ads, which are initially IN_REVIEW, into ACTIVE and PASSIVE.\n\n* Can make package purchases and payments.\n\n* Can view the details of the packages purchased.\n\n\u0026nbsp; \n\n## ⚙️ BACK-END\n\n* [![Java][Java-logo]][Java-url]\n* [![Spring][Spring-logo]][Spring-url]\n* [![Maven][Maven-logo]][Maven-url]\n* [![Postgresql][Postgresql-logo]][Postgresql-url]\n* [![Postman][Postman-logo]][Postman-url]\n* [![Swagger][Swagger-logo]][Swagger-url]\n       \n\n### 🔒 Dependencies\n \n\u003cb\u003e✔️ Spring Web \u003c/b\u003e\n\n\u003cb\u003e✔️ Spring Data JPA \u003c/b\u003e\n\n\u003cb\u003e✔️ Lombok \u003c/b\u003e\n\n\u003cb\u003e✔️ RabbitMQ \u003c/b\u003e\n\n\u003cb\u003e✔️ Hibernate \u003c/b\u003e\n\n\u003cb\u003e✔️ Model Mapper \u003c/b\u003e\n\n\u003cb\u003e✔️ Open Feign \u003c/b\u003e\n\n\u003cb\u003e✔️ Service Discovery \u003c/b\u003e\n\n\u0026nbsp; \n\n\u003c!-- FEATURES --\u003e\n## ✨ Features\n\n❶ Users can register to the system.\n  \n❷ The user can log in to the system with the email and password he/she registered with. If the login is successful, a token belonging to the user is created and he can perform authorized transactions with this token.\n\n❸ Each user's initial right to post ads is \"0\". In order to post an ad, he/she must purchase a package.\n  \n❹ The right to publish advertisements and the validity period of the purchased package are defined in the user model.\n\n❺ The package includes the right to publish 10 advertisements and the usage period of the package is 30 days.\n\n❻ When the user wants to buy a package, his ad balance and usage time are checked.\n\n* If the package has expired, the remaining rights will be reset and you will need to buy the package again.\n  * If the user purchases a package and makes the payment, the purchased package is defined to the user's profile via rabbitMQ.\n  * The right to publish 10 advertisements and a 30-day usage period are added based on the day of purchase.\n\n* If the usage period has not expired, the balance will not be reset.\n  * If the user purchases a new package and the payment transaction is confirmed, 10 advertising rights will be added to the remaining usage rights and the usage period will be increased by 30 days.\n\n❼ The purchase is made according to the ID of the user logged into the system. \n\n(This process is performed according to the information received from the token in the header.)\n\n❽ When the user wants to create an advertisement, advertisement rights and usage time are checked.\n\n * If the package has expired or there are no ad rights left, the ad publishing process will be canceled and an exception error message will be returned to the user.\n\n* If the package has not expired and there is a right to advertise, the ad creation process will be successful. The cost of the package is deducted from the user's balance.\n\n❾ When the ad is created, the ad status is IN_REVIEW. The user can change the status of the ad to ACTIVE or PASSIVE from another service.\n\n✔️ See the [open issues](https://github.com/bertuginal/real-estate-final-project/issues) for a full list of proposed features (and known issues)!\n\n\u0026nbsp; \n\n##  `📈 UML Diagram` \n\n![real-estate-uml-diagram](https://github.com/bertuginal/real-estate-final-project/assets/73167951/8d488562-b396-4a8b-b785-a82d253e7da8)\n\n≫ There are 6 microservices that communicate with each other. These microservices are managed by the gateway. Instance management is provided with service discovery.\n\n* Advert status changing is added to the queue by AdvertService and performed asynchronously by AdvertStatusService.\n* The package identification process is added to the queue by PurchaseService and performed asynchronously by UserService.\n\n\u0026nbsp; \n\n## 💱 API Structure\n\n### ⟶ [Postman API Documentation](https://documenter.getpostman.com/view/27348572/2sA3e498aj) ⟵\n\n\u0026nbsp; \n\n## 🌱 Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\n⭐ Don't forget to give the project a star! Thanks again! ⭐\n\n❶ Fork the Project\n\n❷ Create your Feature Branch (`git checkout -b feature/real-estate-final-project`)\n\n❸  Commit your Changes (`git commit -m 'Add some real-estate-final-project'`)\n\n❹  Push to the Branch (`git push origin feature/real-estate-final-project`)\n\n❺ Open a Pull Request\n   \n\n\u0026nbsp; \n\n\u003c!-- CONTACT --\u003e\n## ☎️ Contact\n\n📧 E-mail: [bertuginal@yahoo.com](mailto:bertuginal@yahoo.com)\n\n📱 Mobile Phone: [(+90) 507 038 33 23](mailto:+905070383323)\n\n📋 Project Link: [https://github.com/bertuginal/real-estate-final-project](https://github.com/bertuginal/real-estate-final-project)\n\n\n\n\u0026nbsp; \n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/othneildrew/Best-README-Template.svg?style=for-the-badge\n[contributors-url]: https://github.com/othneildrew/Best-README-Template/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/othneildrew/Best-README-Template.svg?style=for-the-badge\n[forks-url]: https://github.com/othneildrew/Best-README-Template/network/members\n[stars-shield]: https://img.shields.io/github/stars/othneildrew/Best-README-Template.svg?style=for-the-badge\n[stars-url]: https://github.com/othneildrew/Best-README-Template/stargazers\n[issues-shield]: https://img.shields.io/github/issues/othneildrew/Best-README-Template.svg?style=for-the-badge\n[issues-url]: https://github.com/othneildrew/Best-README-Template/issues\n[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge\n[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/othneildrew\n[product-screenshot]: images/screenshot.png\n\n[Java-logo]: https://img.shields.io/badge/java-000000?style=for-the-badge\u0026logo=spring\u0026logoColor=white\n[Java-url]: https://www.java.com/tr/\n[Spring-logo]: https://img.shields.io/badge/Spring_Boot-DD0031?style=for-the-badge\u0026logo=springboot\u0026logoColor=white\n[Spring-url]: https://spring.io/\n[Maven-logo]: https://img.shields.io/badge/maven-0769AD?style=for-the-badge\u0026logo=jquery\u0026logoColor=white\n[Maven-url]: https://maven.apache.org\n[Mongodb-logo]: https://img.shields.io/badge/Mongo_DB_(Database)-4A4A55?style=for-the-badge\u0026logo=mongodb\u0026logoColor=FF3E00\n[Mongodb-url]: https://www.mongodb.com\n[Postman-logo]: https://img.shields.io/badge/Postman-FF2D20?style=for-the-badge\u0026logo=postman\u0026logoColor=white\n[Postman-url]: https://swagger.io\n[Swagger-logo]: https://img.shields.io/badge/Swagger-563D7C?style=for-the-badge\u0026logo=swagger\u0026logoColor=white\n[Swagger-url]: https://swagger.io\n[Rest-logo]: https://img.shields.io/badge/Rest_Template-563D7C?style=for-the-badge\u0026logo=rest\u0026logoColor=white\n[Rest-url]: https://img.shields.io/badge/Rest_Template-563D7C?style=for-the-badge\u0026logo=rest\u0026logoColor=white\n[React-logo]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[React-url]: https://reactjs.org/\n[Vite-logo]: https://img.shields.io/badge/vite.js-35495E?style=for-the-badge\u0026logo=vuedotjs\u0026logoColor=906DFE\n[Vite-url]: https://vitejs.dev\n[Ant-Design-logo]: https://img.shields.io/badge/ant_design_(UI)-35495E?style=for-the-badge\u0026logo=antdesign\u0026logoColor=F7515E\n[Ant-Design-url]: https://ant.design\n[Postgresql-logo]: https://img.shields.io/badge/PostgreSQL-4A4A55?style=for-the-badge\u0026logo=postgresql\u0026logoColor=FF3E00\n[Postgresql-url]: https://www.postgresql.org\n\n[Vue-logo]: https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge\u0026logo=vuedotjs\u0026logoColor=4FC08D\n[Vue-url]: https://vuejs.org/\n[Angular.io]: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge\u0026logo=angular\u0026logoColor=white\n[Angular-url]: https://angular.io/\n[Svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=for-the-badge\u0026logo=svelte\u0026logoColor=FF3E00\n[Svelte-url]: https://svelte.dev/\n[Laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge\u0026logo=laravel\u0026logoColor=white\n[Laravel-url]: https://laravel.com\n[Bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white\n[Bootstrap-url]: https://getbootstrap.com\n[JQuery.com]: https://img.shields.io/badge/jQuery-0769AD?style=for-the-badge\u0026logo=jquery\u0026logoColor=white\n[JQuery-url]: https://jquery.com \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertuginal%2Freal-estate-final-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbertuginal%2Freal-estate-final-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertuginal%2Freal-estate-final-project/lists"}