{"id":15058892,"url":"https://github.com/encryptex/caixa-enginyers-mes-aprop","last_synced_at":"2026-02-08T05:02:20.978Z","repository":{"id":240497726,"uuid":"802448987","full_name":"EncryptEx/caixa-enginyers-mes-aprop","owner":"EncryptEx","description":"UAB The Hack - Caixa Enginyers Challenge, 2n prize winners. Challenge: generate a route for some vans to visit some cities in Catalunya with restrictions. ","archived":false,"fork":false,"pushed_at":"2024-06-30T10:16:33.000Z","size":24393,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T22:43:12.554Z","etag":null,"topics":["flask","laravel","openstreetmap","pandas","php","python","simulated-annealing","tsp"],"latest_commit_sha":null,"homepage":"","language":"Blade","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EncryptEx.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-05-18T10:22:44.000Z","updated_at":"2024-06-30T10:17:17.000Z","dependencies_parsed_at":"2024-09-24T22:33:08.099Z","dependency_job_id":"aa6bbd83-9655-48d2-b7e1-ef4b845378eb","html_url":"https://github.com/EncryptEx/caixa-enginyers-mes-aprop","commit_stats":null,"previous_names":["encryptex/caixa-enginyers-mes-aprop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Fcaixa-enginyers-mes-aprop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Fcaixa-enginyers-mes-aprop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Fcaixa-enginyers-mes-aprop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EncryptEx%2Fcaixa-enginyers-mes-aprop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EncryptEx","download_url":"https://codeload.github.com/EncryptEx/caixa-enginyers-mes-aprop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243801610,"owners_count":20350106,"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":["flask","laravel","openstreetmap","pandas","php","python","simulated-annealing","tsp"],"created_at":"2024-09-24T22:32:27.120Z","updated_at":"2026-02-08T05:02:20.938Z","avatar_url":"https://github.com/EncryptEx.png","language":"Blade","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UAB The Hack 👾 - Caixa Enginyers Challenge 🚐 💰\n![hack](https://github.com/EncryptEx/caixa-enginyers-mes-aprop/assets/95536223/660c4c7d-4be9-4f1e-b416-04ecb7db1cb4)\u003cbr\u003e\n\n![caixa](https://github.com/EncryptEx/caixa-enginyers-mes-aprop/assets/95536223/10f07df9-2823-4616-bc31-0749219a8d9d)\u003cbr\u003e\u003cbr\u003e\n\nOur team has participated in the Hackathon hosted by Universitat Autònoma de Barcelona, where we implemented a solution for the project presented by Caixa Enginyers.\u003cbr\u003e\nGrup Caixa Enginyers is a cooperative credit and financial services entity, offering a wide range of banking, financial, and insurance solutions. \u003cbr\u003e\u003cbr\u003e\n## The challenge \nDesign a software capable of proposing optimized routes for a mobile office (van) which visits a set of municipalities. Everything satisfying some restrictions, like the working day, going to some places on certain days of the month, and having only 4 vans. The routs had to obey some requirements for the contest organized by the Generalitat de Catalunya, which can be found [here](https://contractaciopublica.cat/ca/detall-publicacio/6d5220fb-70f6-42c7-bf85-b78ef0184427/300013925).\u003cbr\u003e\u003cbr\u003e\n\n\n## Authors  \u003cimg src=\"https://github.com/EncryptEx/caixa-enginyers-mes-aprop/assets/95536223/a16f7883-aabd-4d1e-8d33-ffcc8abad5a8\" alt=\"logo\" width=\"40\"/\u003e\n- Arnau Claramunt\n- Jaume López\n- Pay Mayench\n\n[![GitHub followers](https://img.shields.io/github/followers/ArnauCS03?label=ArnauCS03)](https://github.com/ArnauCS03) \u0026nbsp;\u0026nbsp; [![GitHub followers](https://img.shields.io/github/followers/EncryptEx?label=EncryptEx)](https://github.com/EncryptEx) \u0026nbsp;\u0026nbsp; [![GitHub followers](https://img.shields.io/github/followers/PauMayench?label=PauMayench)](https://github.com/PauMayench) \u003cbr\u003e\u003cbr\u003e\n\n---\n\u003cbr\u003e\n\n\u003e[!NOTE]  \n\u003e ### Project Technologies and Tools\n\u003e Here is the summary of the technologies and tools utilized in our project:\n\u003e - **Python**: Leveraged for the backend development.\n\u003e - **Laravel (php)**: Main framework for the web application development.\n\u003e - **Tailwind (CSS)**: Used for efficient and flexible styling in the web.\n\u003e - **Flask**: For building the APIs.\n\u003e - **Pandas**: Employed for data manipulation and analysis, and working with .csv files.\n\u003e - **OpenStreetMap**: Integrated for rich mapping functionalities.\n\u003e - **Leaflet**: Employed for the interactive map in our web.\n\u003e - **ngrok**: Utilized for secure tunneling to connect IPs.\n\n\u003cbr\u003e\u003cbr\u003e\n# Table of Contents\n\n1. [Project Overview](#project-ov)\n2. [Challenges we ran into](#callenge)\n3. [Project Setup](#project-setup)\n4. [Learning](#learning)\n5. [Next](#next)\n6. [Screenshots](#screen)\n7. [Licence](#license)\u003cbr\u003e\u003cbr\u003e\n\n\u003ca name=\"project-ov\"\u003e\u003c/a\u003e\n## Project Overview\nWe devided the work in forntend and backend. For the forntend we build a web with Laravel (php). And backend with Python and Flask, modeling the Algorithm. \n\n\u003ca name=\"callenge\"\u003e\u003c/a\u003e\n## Challenges we ran into\nFinding a good modelizations and algorithm. Also the heuristic for calculating the optimal routes. Work with new frameworks, and moreover having to calculate distances from all pairs of cities. And little details like correcting the names of the dataset of small cities so the API recognised them inside Spain.\n\n\u003ca name=\"project-setup\"\u003e\u003c/a\u003e\n## Project Setup\nFirst of all, we need to run the solver in order to compile its results into a readable json file:\n\nTo do that, we'll need to create a virtualenviroment and install all the requirements\n```\ncd ./solver\n```\n```\nvirtualenv env --python=python3.10\n```\n```\nsource env/bin/activate\n```\n```\npip install -r requirements.txt\n```\nOnce created, we'll run the solver once and then, enable the FlaskAPI service to allow access to the json computed file (that contains all events in the correct order) to the backend (Laravel).\n```\npython3 solver.py\n```\nNow, run the FlaskAPI service:\n```\ncd ./web_server\n```\n```\npython3 app.py\n```\n\nOnce having the FlaskAPI service up, we'll need to enable the backend service (Laravel) with PHP 8.3.6\n```\ncd ../../web\n```\n```\ncomposer install\n```\nOnce installed all dependencies, now we can create a ``.env`` file by copying the `.env.example` and configuring all the standard credentials (we'll only need to set up the [database section if needed](https://www.inmotionhosting.com/support/edu/laravel/how-to-configure-the-laravel-env-for-a-database/), by default uses Sqlite3) \n\nDon't forget to add the DATA_URI credential with the value of the host of the FlaskAPI e.g. ``DATA_URI=\"http://127.0.0.1:5000/\"`` if running in the same machine on port 5000.\n\nIf using in different devices, use [ngrok](https://ngrok.com/). (We used it for the demo)\n\n```\nphp artisan migrate\n```\n```\nphp artisan serve\n```\nIn another terminal, we'll launch the frontend active CSS compiling service using tailwindcss, (for development purposes)\n```\ncd .. \u0026\u0026 npm install\n```\nTo recompile every time any file gets changed: \n```\nnpm run dev\n```\nTo create a production css-compiled snapshot:\n```\nnpm run build\n```\nNow, you're ready to go and all services are up!\n\nYou can enjoy the responsive web-app at 127.0.0.1:8000 (probably), or see the ``php artisan serve`` section and check which port is running on.\n\n\n\u003ca name=\"learning\"\u003e\u003c/a\u003e\n## Learning 🎓\nWe paractised and learned  Technologies and Tools, like Python for all the backend and data processing. Laravel (php): the main framework for the web application development. Tailwind (CSS): Used for efficient and flexible styling in the web. Flask: For building the APIs. Pandas: Employed for data manipulation and analysis, and working with .csv files. OpenStreetMap: Integrated for rich mapping functionalities. Leaflet: Employed for the interactive map in our web. Ngrok: Utilized for secure tunneling to connect IPs. Also working with APIs, and little thinks like improving the quality of the readme in Github.\n\n\u003ca name=\"next\"\u003e\u003c/a\u003e\n## What's next for Caixa Enginyers mes a prop\nSend SMS messages to the users so they can answer the feedback forms.\nImprove the feedback data collections and improving of the routes.\n\n\u003ca name=\"screen\"\u003e\u003c/a\u003e\n## Screenshots\n![d](https://github.com/EncryptEx/caixa-enginyers-mes-aprop/assets/95536223/b93fad29-b3df-42ad-b32f-01c0538c5c37)\n![b](https://github.com/EncryptEx/caixa-enginyers-mes-aprop/assets/95536223/fef7a4ef-d813-4e4e-b888-b242d55f1764)\n![e](https://github.com/EncryptEx/caixa-enginyers-mes-aprop/assets/95536223/a02c9823-6f25-44e4-a614-fea12bb827a7)\n![Screenshot from 2024-05-20 14-49-31](https://github.com/ArnauCS03/caixa-enginyers-mes-aprop/assets/95536223/94d5dd20-85bc-4327-bc5e-e045c621a7bf)\n\n\n\u003ca name=\"license\"\u003e\u003c/a\u003e\n## License ⚖️\nCreative Commons Attribution Non Commercial No Derivatives 4.0 International \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencryptex%2Fcaixa-enginyers-mes-aprop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fencryptex%2Fcaixa-enginyers-mes-aprop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fencryptex%2Fcaixa-enginyers-mes-aprop/lists"}