{"id":15297273,"url":"https://github.com/kirpinev/java-explore-with-me","last_synced_at":"2026-01-05T15:45:32.771Z","repository":{"id":155338898,"uuid":"625875529","full_name":"kirpinev/java-explore-with-me","owner":"kirpinev","description":"ExploreWithMe is a service that allows users to share information about interesting events and find companions for participation.","archived":false,"fork":false,"pushed_at":"2023-04-27T21:28:14.000Z","size":133,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T12:14:24.889Z","etag":null,"topics":["docker","hibernate","java-11","junit","mokito","postgresql"],"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/kirpinev.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":"2023-04-10T09:50:19.000Z","updated_at":"2023-05-02T11:57:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"9c0a887a-4bd4-46b1-84f7-ad2ef42c9b0b","html_url":"https://github.com/kirpinev/java-explore-with-me","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"yandex-praktikum/java-explore-with-me","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirpinev%2Fjava-explore-with-me","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirpinev%2Fjava-explore-with-me/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirpinev%2Fjava-explore-with-me/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kirpinev%2Fjava-explore-with-me/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kirpinev","download_url":"https://codeload.github.com/kirpinev/java-explore-with-me/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245467614,"owners_count":20620216,"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":["docker","hibernate","java-11","junit","mokito","postgresql"],"created_at":"2024-09-30T19:16:13.874Z","updated_at":"2026-01-05T15:45:32.734Z","avatar_url":"https://github.com/kirpinev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExploreWithMe\n\nExploreWithMe is a Spring Boot application that allows users to share information about interesting events and find\ncompanions for participation. It helps users efficiently plan their leisure time by providing a platform to organize and\nparticipate in various events.\n\n## Features\n\n- Public API for searching and filtering events with options for sorting by event views (retrieved from the statistics\n  service) or event dates.\n- Private API accessible only to authorized users, which includes the following features:\n    - Adding, editing, and viewing events.\n    - Submitting requests for event participation.\n    - Confirming event participation requests by the event creator.\n- Administrative API for service administrators, which includes the following features:\n    - Adding, modifying, and deleting event categories.\n    - Creating, removing, and pinning event collections on the main page.\n    - Moderating user-submitted events (publication or rejection).\n    - User management (adding, activation, viewing, and deletion).\n- Event creation and management with a lifecycle that includes creation, awaiting publication, publication, and\n  publication cancellation.\n- User registration and authentication.\n- Event rating system.\n- Statistics service to track event views, user IPs, and endpoint accesses.\n- Predefined event categories and collections created by administrators.\n- Event view counts provided by the statistics service.\n\n## Data Model\n\nThe event lifecycle includes the following stages:\n\n1. Creation\n2. Awaiting publication (automatically set after event creation)\n3. Publication (set by an administrator)\n4. Cancellation of publication (set either by the administrator or the event initiator during the awaiting publication\n   stage)\n\n## Authentication and Authorization\n\nBoth ExploreWithMe services operate within a VPN (Virtual Private Network), which allows for secure communication\nbetween the services and the external world. A network gateway is responsible for contacting the authentication and\nauthorization system and forwarding requests to the services. If the gateway allows a request to access the private or\nadministrative API, it means the request has successfully passed authentication and authorization.\n\n## Statistics Service\n\nThe statistics service collects information on user interactions, such as the number of user requests to event lists and\nthe number of requests for detailed event information. This data is used to generate statistics about the application's\nperformance.\n\n## Technologies Used\n\n- Spring Boot\n- Hibernate\n- Docker\n- PostgreSQL\n\n## Getting Started\n\n### Prerequisites\n\nEnsure you have the following installed on your system:\n\n- Java Development Kit (JDK) 11 or later\n- Docker\n- PostgreSQL\n\n### Building the Project\n\n1. Clone the repository:\n\n   ```git clone https://github.com/kirpinev/java-explore-with-me.git```\n\n2. Change the current directory to the project root:\n\n   ```cd java-explore-with-me```\n\n3. Build the project using Maven:\n\n   ```./mvnw clean install```\n\n4. Run the Docker container for PostgreSQL:\n\n   ```docker-compose up -d```\n\n### Running the Application\n\nRun the application using the following command:\n\n```./mvnw spring-boot:run```\n\nThe application will start on port 8080. Access the public API at `http://localhost:8080`, and the administrative API\nat `http://localhost:8080/admin`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkirpinev%2Fjava-explore-with-me","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkirpinev%2Fjava-explore-with-me","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkirpinev%2Fjava-explore-with-me/lists"}