{"id":28171079,"url":"https://github.com/martinmendozadev/stateforce","last_synced_at":"2026-05-02T11:33:44.734Z","repository":{"id":289194488,"uuid":"886962261","full_name":"martinmendozadev/StateForce","owner":"martinmendozadev","description":"StateForce: Real-time Emergency Resource Management.","archived":false,"fork":false,"pushed_at":"2025-05-09T02:45:41.000Z","size":186,"stargazers_count":0,"open_issues_count":17,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-09T03:31:38.552Z","etag":null,"topics":["postgresql","rails","ruby","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/martinmendozadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-11T23:32:12.000Z","updated_at":"2025-05-09T02:39:48.000Z","dependencies_parsed_at":"2025-05-09T03:25:07.106Z","dependency_job_id":"97a72028-047a-4e79-9591-b55b039381a0","html_url":"https://github.com/martinmendozadev/StateForce","commit_stats":null,"previous_names":["martinmendozadev/stateforce"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinmendozadev%2FStateForce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinmendozadev%2FStateForce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinmendozadev%2FStateForce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martinmendozadev%2FStateForce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/martinmendozadev","download_url":"https://codeload.github.com/martinmendozadev/StateForce/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394710,"owners_count":22063985,"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":["postgresql","rails","ruby","tailwindcss"],"created_at":"2025-05-15T18:15:52.829Z","updated_at":"2026-05-02T11:33:44.729Z","avatar_url":"https://github.com/martinmendozadev.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://img.shields.io/github/actions/workflow/status/martinmendozadev/StateForce/ci.yml?branch=main)](https://github.com/martinmendozadev/StateForce/actions)\n[![License: GPL-2.0](https://img.shields.io/badge/License-GNU%20GPL-blue)](LICENSE)\n[![Coverage Status](https://img.shields.io/codecov/c/github/martinmendozadev/StateForce)](https://codecov.io/gh/martinmendozadev/StateForce)\n[![Ruby](https://img.shields.io/badge/Ruby-3.4.5-red.svg)](https://www.ruby-lang.org/)\n[![Rails](https://img.shields.io/badge/Rails-8.0.2.1-red.svg)](https://rubyonrails.org/)\n\n# 🚨 StateForce\n\n**Real-time Emergency Resource Management**\n\nStateForce is a Ruby on Rails application designed to optimize emergency response operations and resources in real time. Originally developed for the **Centro Regulador de Urgencias Médicas (CRUM)** at the state level in Mexico, the system centralizes the management of medical, police, rescue, and fire department assets to reduce response times and improve coordination. It can also be adapted for use by any organization managing multiple emergency services.\n\n---\n\n## 🎥 Demo\n\n\u003cimg src=\"docs/demo.gif\" alt=\"StateForce Demo\" width=\"700\"/\u003e\n\n\u003e _A quick look at real-time resource management in action._\n\n_Screenshots and more details available in the [Wiki](https://github.com/martinmendozadev/StateForce/wiki)._\n\n---\n\n## 📚 Table of Contents\n\n1. [Demo](#-demo)\n2. [Overview](#-overview)\n3. [Quickstart](#-quickstart)\n4. [Tech Stack](#-tech-stack)\n5. [Getting Started](#-getting-started)\n6. [Development Tools](#-development-tools)\n7. [Documentation](#-documentation)\n8. [Contributing](#-contributing)\n9. [Support](#-support)\n10. [Internationalization](#-internationalization)\n11. [Credits \u0026 Acknowledgements](#-credits--acknowledgements)\n12. [License](#-license)\n\n---\n\n## 🔎 Overview\n\nStateForce empowers emergency services with a modern, reliable, and scalable platform for managing real-time resources such as ambulances, hospitals, rescue units, helicopters, and specialists. It features role-based access control, real-time updates, and seamless integration of data from public APIs.\n\nThe application is tailored for the **Centro Regulador de Urgencias Médicas (CRUM)** but can be customized to meet the needs of other emergency response organizations across different regions.\n\n---\n\n## ⚡ Quickstart\n\nWant to try StateForce right now?\n\nVisit [stateforce.mx](http://localhost:3000) and log in\n\n---\n\n## 🛠 Tech Stack\n\n- **Ruby 3.4.5** – Elegant, powerful backend language.\n- **Rails 8.0.2.1** – Framework optimized for developer productivity and performance.\n- **PostgreSQL 17** – Reliable, production-grade relational database.\n- **Redis** – Used for background jobs and caching.\n- **TailwindCSS 4** – Utility-first CSS framework for rapid UI development.\n- **Hotwire (Turbo + Stimulus)** – For real-time, reactive frontend experiences.\n- **Devise + OmniAuth** – Secure authentication with email confirmation and Google login.\n- **Sidekiq** – Background job processing.\n- **RuboCop** – Code quality and style enforcement.\n\n---\n\n## 🚀 Getting Started\n\nTo run StateForce locally:\n\n1. **Clone the Repository**\n\n   ```bash\n   git clone git@github.com:martinmendozadev/StateForce.git\n   cd StateForce\n   ```\n\n2. **Install Ruby**\n\n   [Go to Doc](https://www.ruby-lang.org/en/documentation/installation/)\n\n3. **Install Dependencies**\n\n   ```bash\n   gem install bundler\n   bundle install\n   ```\n\n4. **Set Up Environment Variables**\n\n   ```bash\n   cp .env.example .env\n   ```\n\n5. **Set Up the Database**\n\n   ```bash\n   bin/setup\n   ```\n\n6. **Start the Server**\n\n   ```bash\n   bin/dev\n   ```\n\n   Visit `http://localhost:3000` to start using the app.\n\n   \u003e **Test credentials**\n   \u003e Email: `test@stateforce.mx`\n   \u003e Password: `123qweASD`\n\n---\n\n## 🧰 Development Tools\n\n- **Run Test Suite**\n\n  ```bash\n  bin/rails test\n  ```\n\n- **Run Linter**\n\n  ```bash\n  bin/rubocop\n  ```\n\n- **System Tests (Capybara + Selenium)**\n\n  ```bash\n  bin/rails test:system\n  ```\n\n  Includes headless browser testing with screenshot support for failures.\n\n- **Hot Reloading with Turbo**\n\n  Frontend changes are reflected instantly thanks to Hotwire.\n\n---\n\n## 📖 Documentation\n\nFor full technical documentation, please visit the [StateForce Wiki](https://github.com/martinmendozadev/StateForce/wiki), which includes:\n\n### **Core Topics**\n\n- 🏠 [Home](https://github.com/martinmendozadev/StateForce/wiki/Home)\n- 🛠 [Architecture Diagram](https://github.com/martinmendozadev/StateForce/wiki/Architecture-Diagram)\n- 🧩 [DataBase](https://github.com/martinmendozadev/StateForce/wiki/DataBase)\n- 🚦 [Roles Definition](https://github.com/martinmendozadev/StateForce/wiki/Roles-Definition)\n- ✨ [System Architecture](https://github.com/martinmendozadev/StateForce/wiki/System-Architecture)\n- 📝 [Testing Guide](https://github.com/martinmendozadev/StateForce/wiki/Testing-Guide)\n- 👤 [Users Flow](https://github.com/martinmendozadev/StateForce/wiki/Users-Flow)\n- 🎨 [Style Guide](https://github.com/martinmendozadev/StateForce/wiki/Style-Guide)\n\n---\n\n## 🤗 Contributing\n\nWe welcome contributions! Please read our [CONTRIBUTING.md](CONTRIBUTING.md) and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) before submitting a pull request.\n\n- Open issues for bugs or feature requests.\n- Fork the repo and submit a pull request for improvements.\n\n---\n\n## 🤝 Support\n\nIf you run into issues or have questions:\n\n📬 **[martinmendozadev@gmail.com](mailto:martinmendozadev@gmail.com)**\n\nWe welcome contributions and feedback to improve StateForce for emergency services everywhere.\n\n---\n\n## 🌐 Internationalization\n\nStateForce currently supports Spanish and English. The interface language is primarily Spanish, reflecting its main operational context. Future versions may include more robust multi-language support. For details on current capabilities, see the [Wiki](https://github.com/martinmendozadev/StateForce/wiki).\n\n---\n\n## 🙏 Credits \u0026 Acknowledgements\n\n- Developed by [martinmendozadev](https://github.com/martinmendozadev)\n- Inspired by the needs of emergency services professionals.\n- Built with Ruby on Rails, Hotwire, and the open source community.\n\n---\n\n## 📝 License\n\nThis project is licensed under the terms of the [GNU General Public License v2.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinmendozadev%2Fstateforce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartinmendozadev%2Fstateforce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartinmendozadev%2Fstateforce/lists"}