{"id":25606855,"url":"https://github.com/joojscript/xplore","last_synced_at":"2026-04-20T14:02:17.347Z","repository":{"id":278070704,"uuid":"932133202","full_name":"joojscript/xplore","owner":"joojscript","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-17T20:12:37.000Z","size":6998,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T21:25:22.105Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","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/joojscript.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":"2025-02-13T12:25:50.000Z","updated_at":"2025-02-17T20:12:41.000Z","dependencies_parsed_at":"2025-02-17T21:38:12.727Z","dependency_job_id":null,"html_url":"https://github.com/joojscript/xplore","commit_stats":null,"previous_names":["joojscript/xplore"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joojscript%2Fxplore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joojscript%2Fxplore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joojscript%2Fxplore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joojscript%2Fxplore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joojscript","download_url":"https://codeload.github.com/joojscript/xplore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240072131,"owners_count":19743526,"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":[],"created_at":"2025-02-21T19:17:10.465Z","updated_at":"2025-09-23T03:10:07.498Z","avatar_url":"https://github.com/joojscript.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\" id=\"readme-top\"\u003e\n  \u003ca href=\"https://github.com/joojscript/xplore\"\u003e\n    \u003cimg src=\"apps/ui/public/xplore-logo.png\" alt=\"Logo\" width=\"200\" height=\"200\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eXplore\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Find the best way to meet the world, in person!\n    \u003cbr /\u003e\n    \u003ca href=\"https://youtu.be/8dukGid1mE0\"\u003e\u003cstrong\u003eQuick Explanation »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n![Xplore Desktop](https://github.com/joojscript/xplore/blob/main/.github/assets/app_screenshot_desktop.png?raw=true)\n\nXplore is an application designed to change the way users plan their travel destinations and optimize routes. The tool visualizes the most efficient paths between selected locations worldwide, providing an intuitive and interactive experience for globetrotters and travel enthusiasts.\n\nHere's why:\n\n* **Interactive World Map:** Select destinations from a visually appealing global map interface.\n\n* **Route Optimization:** Automatically calculate and display the most efficient path between chosen locations.\n\n* **Responsive Design:** Enjoy a seamless experience across various devices and screen sizes.\n\n* **Internationalization:** Support for multiple languages to cater to a global user base.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n### Built With\n\n* **Frontend:** Built with Astro, offering flexibility in rendering processes and optimal performance.\n\n* **Backend:** Powered by Elixir, ensuring scalability and fault-tolerance.\n\n* **Database:** Utilizes Surreal DB for efficient data management.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\nTo spin-up the environment on your local machine, please take a look at the steps below, and make sure you meet all the requirements:\n\n### Prerequisites\n\nYou have to have Docker installed and running on your machine, along with the **compose** plugin.\n\n### Installation\n\n_Below is an example of how you can get it running, and after it, migrating the data to the database, making it populated and ready to go_\n\n1. Clone the repo\n\n   ```sh\n   git clone https://github.com/joojscript/xplore.git\n   ```\n\n2. Make sure all the default values and ports on the `docker-compose.yaml` file works great for you.\n3. Add the desired changes (if any) to your local environment variables (either by changing the compose file, at your own risk, or adding it localy to you shell session), and after it, run:\n\n   ```sh\n   docker compose up -d\n   ```\n\n**Important:** Be careful, the proxy container `nginx` will try to run on port `80`, in the compose file, you'll se the `CAP_ADD` command enabling it, but in some distros, this may cause errors. Because of this, you can set up `STACK_PORT` to any port you want, you'll interact with the application through this port, if set, otherwise, defaults to `80`.\n\nIt will build the container images, and run them, you're almost good to go!\n\n4. Migrate data to the containers:\n\n   ```sh\n   # Or whatever container name you changed to it\n   docker exec -it xplore-core-1 elixir migrate.exs\n   ```\n\n5. Access your localhost at port 3000 (default), and you should see it up and running:\n\n![Xplore Mobile](https://github.com/joojscript/xplore/blob/main/.github/assets/app_screenshot_mobile.png?raw=true)\n\n#### Other Available Environment Variables for you to customize your Compose run\n\n_Remember: all of these values have default counterparts, only change them if you intend to_\n\n* `STACK_PORT`: The port in which the Nginx Proxy will run, you'll interact with the application only through here.\n* `BACKEND_PORT`: The port in which the Elixir Backend will run.\n* `FRONTEND_PORT`: The port in which the Astro+React Frontend will run.\n* `SURREALDB_PORT`: The Surreal DB port.\n* `SURREALDB_HOSTNAME`: Ths Surreal DB hostname.\n* `SURREALDB_USERNAME`: Ths Surreal DB username.\n* `SURREALDB_PASSWORD`: Ths Surreal DB password.\n* `SURREALDB_DATABASE`: Ths Surreal DB database name.\n* `SURREALDB_NAMESPACE`: Ths Surreal DB namespace.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nJoão Augusto Perin - [@augustooojoao](https://twitter.com/augustooojoao) - \u003cjoaoaugustoperin@gmail.com\u003e\n\nExplanation Link: [Youtube Video](https://youtu.be/8dukGid1mE0)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoojscript%2Fxplore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoojscript%2Fxplore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoojscript%2Fxplore/lists"}