{"id":17008932,"url":"https://github.com/barbaracalderon/oil-pump","last_synced_at":"2026-04-10T06:43:23.507Z","repository":{"id":245948516,"uuid":"817609308","full_name":"barbaracalderon/oil-pump","owner":"barbaracalderon","description":"A simulation platform for equipment metrics in oil \u0026 gas environments. Includes a Python-Golang backend integrated with RabbitMQ, PostgreSQL storage, and an Angular frontend. Developed and deployed using Docker and Docker Compose.","archived":false,"fork":false,"pushed_at":"2024-06-25T02:53:58.000Z","size":2769,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T12:11:45.997Z","etag":null,"topics":["angular","data-consumer","data-producer","docker","docker-compose","go","go-api","golang","microsservices","ngx-bootstrap","postgresql","python","rabbitmq","rest-api","sql"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/barbaracalderon.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-06-20T05:03:00.000Z","updated_at":"2024-06-27T17:20:04.000Z","dependencies_parsed_at":"2024-06-28T10:30:59.310Z","dependency_job_id":null,"html_url":"https://github.com/barbaracalderon/oil-pump","commit_stats":null,"previous_names":["barbaracalderon/oil-pump"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Foil-pump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Foil-pump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Foil-pump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barbaracalderon%2Foil-pump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barbaracalderon","download_url":"https://codeload.github.com/barbaracalderon/oil-pump/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244959449,"owners_count":20538625,"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":["angular","data-consumer","data-producer","docker","docker-compose","go","go-api","golang","microsservices","ngx-bootstrap","postgresql","python","rabbitmq","rest-api","sql"],"created_at":"2024-10-14T05:42:17.502Z","updated_at":"2025-12-30T20:44:49.988Z","avatar_url":"https://github.com/barbaracalderon.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oil \u0026 Gas Panel System\n\nThis project comprises a backend API and a frontend interface for monitoring equipment data in an oil \u0026 gas environment. \n\nThe backend has 4 services: \n\n- data-producer (Python)\n- RabbitMQ\n- PostgreSQL\n- data-consumer (Go) \n\nThe frontend has 1 service:\n- frontend (Angular with Chart.js and Bootstrap)\n\n**This is an ongoing application, under construction.**\n\n![AngularHome](assets/landing-page.png)\n![AngularMachine](assets/data01.png)\n![AngularMachine](assets/data02.png)\n\n\n## Author\n\nBarbara Calderon, software developer.\n\n- [Github](https://www.github.com/barbaracalderon)\n- [LinkedIn](https://www.linkedin.com/in/barbaracalderondev)\n- [Twitter](https://www.x.com/bederoni)\n\n### Technologies Used\n\n- Python programming language\n- Golang programming language\n- Typescript programming language\n- RabbitMQ\n- PostgreSQL\n- Angular\n- Chart.js\n- Bootstrap\n- Docker\n- Docker Compose\n\n## Project Objectives\n\nThe primary goals of the Oil \u0026 Gas Panel System project are as follows:\n\n1. **Data Producer**: Developed in Python, simulates real-time data from sensors in a centrifugal oil pump, including metrics like timestamp, suction_pressure (psi), discharge_pressure (psi), flow_rate (gpm), fluid_temperature (Celsius), bearing_temperature (Celsius), vibration (mm/s), impeller_speed (rpm), lubrication_oil_level (mm), and npsh (m). The producer sends data to the message broker.\n\n   ![DataProducer](assets/docker-data-producer.png)\n\n2. **Message Broker**: Integrates with RabbitMQ for real-time data ingestion and processing, using the oil_exchange bound to oil_queue.\n\n   ![RabbitMQ](assets/oil_exchange.png)\n   ![RabbitMQ](assets/oil_queue.png)\n   ![RabbitMQ](assets/docker-rabbitmq.png)\n\n3. **Data Consumer**: Developed in Golang, consumes messages from the RabbitMQ oil_queue and inserts data into the PostgreSQL database via an API endpoint (POST /oil-data). The consumer also provides API endpoints (/pressure, /material, and /fluid).\n\n   ![DataConsumer](assets/docker-data-consumer.png)\n\n4. **PostgreSQL**: The PostgreSQL database 'oil' stores equipment data in the EquipmentData table.\n\n   ![PostgreSQL](assets/postgresql.png)\n   ![PostgreSQL](assets/docker-postgres.png)\n\n5. **Visual Graph on Data**: Develops a frontend interface using Angular, Chart.js, and Bootstrap to visualize equipment metrics using charts and tables.\n\n6. **Docker and Docker Compose**: Uses Docker and Docker Compose for containerization and deployment.\n\n## Overview\n\nThe Oil \u0026 Gas Panel System provides a comprehensive solution for monitoring equipment parameters such as pressure, material status, and fluid conditions in real-time. The backend API is built with Go and Gin, leveraging RabbitMQ for data ingestion. The frontend interface, developed with Angular, offers intuitive visualization of equipment metrics.\n\n## Backend API\n\nThe backend API built with Golang serves as the core of the Oil \u0026 Gas Panel System, offering endpoints to retrieve equipment data and integrate with external systems.\n\n### API Endpoints\n\n| Method | Endpoint          | Description                                    |\n|--------|-------------------|------------------------------------------------|\n| GET    | /pressure         | Retrieve equipment pressure data                |\n| GET    | /material         | Retrieve equipment material status data         |\n| GET    | /fluid            | Retrieve equipment fluid condition data         |\n| POST   | /oil-data         | Post new equipment data                        |\n\n### Example:\n\n![Insomnia Endpoint Pressure](assets/pressure.png)\n![Insomnia Endpoint Fluid](assets/material.png)\n![Insomnia Endpoint Material](assets/fluid.png)\n\n## Run Locally\n\nTo run the Oil \u0026 Gas Panel System locally, follow these steps:\n\n1. Make sure you have Docker e Docker Composed installed on your machine.\n\n2. Clone this repository:\n\n```bash\ngit clone git@github.com:barbaracalderon/oil-pump.git\n```\n\n3. Navigate to the project directory:\n\n```bash\ncd oil-pump\n```\n\n4. Execute the Docker Compose command to run the containers:\n\n```bash\ndocker compose up --build\n```\n\n5. Access the Golang API at:\n\n```bash\nlocalhost:8080\n```\n\n6. Access the RabbitMQ dashboard at:\n\n```bash\nlocalhost:5672\nuser = 'guest'\npassword = 'guest'\n```\n\n7. Access the Angular frontend at:\n\n```bash\nlocalhost:4200\n```\n\n8. To access the PostgreSQL database via Pg4Admin (to view database content), use:\n\n```bash\ndatabase = 'oil'\nuser = 'postgres'\npassword = 'example'\nlocalhost:5434\n```\n\n## Final considerations\n\nThe Oil \u0026 Gas Monitoring System aims to provide a solution for monitoring equipment metrics, enhancing operational efficiency in oil \u0026 gas environments. Developed using modern technologies such as Go, Angular, and Docker, the system ensures scalability, performance, and ease of deployment.\n\nWe welcome feedback and contributions to further improve and expand the capabilities of this system.\n\n**Still under construction.**\n\nRegards,\n\nBarbara Calderon.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarbaracalderon%2Foil-pump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarbaracalderon%2Foil-pump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarbaracalderon%2Foil-pump/lists"}