{"id":17838171,"url":"https://github.com/pbergstrom90/sensordatabase","last_synced_at":"2026-05-03T18:33:37.429Z","repository":{"id":259399004,"uuid":"860351237","full_name":"PBergstrom90/SensorDatabase","owner":"PBergstrom90","description":"Group assignment to integrate a temperature sensor with a Arduino Uno, log sensor data in a MySQL-database, and display the data through a Spring Boot web service. The dashboard shows historical and real-time sensor data, collected from the database.","archived":false,"fork":false,"pushed_at":"2024-09-26T10:34:12.000Z","size":284,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-08T04:46:02.629Z","etag":null,"topics":["ardunio-uno","c","database","java","jdbc","springboot","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PBergstrom90.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-09-20T09:18:30.000Z","updated_at":"2024-09-29T15:05:52.000Z","dependencies_parsed_at":"2024-10-25T04:31:18.247Z","dependency_job_id":"b52a3ff2-8007-45d2-8d4c-a231e1541713","html_url":"https://github.com/PBergstrom90/SensorDatabase","commit_stats":null,"previous_names":["pbergstrom90/sensordatabase"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PBergstrom90%2FSensorDatabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PBergstrom90%2FSensorDatabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PBergstrom90%2FSensorDatabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PBergstrom90%2FSensorDatabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PBergstrom90","download_url":"https://codeload.github.com/PBergstrom90/SensorDatabase/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246827758,"owners_count":20840464,"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":["ardunio-uno","c","database","java","jdbc","springboot","sql"],"created_at":"2024-10-27T20:52:33.281Z","updated_at":"2026-05-03T18:33:37.389Z","avatar_url":"https://github.com/PBergstrom90.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sensor Database\n\n## Group Members\n\n- Edvin Hansson\n- Jesper Persson\n- Pontus Bergström\n\n## Project Overview\n\nThis project is a Spring Boot application designed to interact with temperature sensors. It reads data from sensors through a serial connection, stores the data in a database, and provides a REST API for retrieving sensor information and temperature datapoints.\n\nThe application uses **jSerialComm** to manage serial communication, with robust handling of connection issues and data parsing. Sensors are represented in the database, and temperature readings (datapoints) are linked to each sensor for easy retrieval.\n\n## Technologies Used\n\n- **Spring Boot** (Version 3.3.3: Framework for building Java-based web apps and microservices.)\n- **Java** (Version 17 or later: Backend programming language for robust server-side logic.)\n- **C** (Programming language for Arduino to read sensor data and send it to the backend.)\n- **MySQL** (Relational database for storing and managing sensor data.)\n- **jSerialComm** (Java library for serial communication with sensors.)\n- **Lombok** (Java library to reduce boilerplate code.)\n- **Hibernate** (ORM framework for mapping Java objects to database tables.)\n- **Gradle** (Build automation tool.)\n- **Javascript/React App** (Frontend stack for a dynamic data presentation.)\n\n## Application Structure\n\n- **Main Class:** `SensorDatabaseApplication.java`\n- **Controller:** Handles API requests related to sensors and datapoints.\n- **Service Layer:** Manages business logic like adding datapoints and interacting with the database.\n- **Repository Layer:** Provides data access using Spring Data JPA.\n- **SerialReader:** Reads data from a serial port, processes it, and sends it to the database.\n\n## Features\n\n- **Serial Port Integration:** Reads data from a serial port and parses temperature readings.\n- **Database Storage:** Stores sensor information and their corresponding datapoints.\n- **REST API:** Provides endpoints to interact with sensor data.\n- **Logging:** Detailed logging for debugging and monitoring purposes.\n\n## Setup Instructions\n\n1. **Clone the Repository**:\n   ```bash\n   git clone \u003chttps://github.com/PBergstrom90/SensorDatabase\u003e\n\n2. **Configure the database**:\n- Set up a MySQL (or other) database.\n- Run the following SQL-script:\n  ```sql \n   drop database if exists tempdatabase;\n   create database tempdatabase;\n   use tempdatabase;\n   drop user if exists 'dbuser'@'localhost';\n   CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'secretpassword';\n   grant all privileges on . TO 'dbuser'@'localhost' WITH GRANT OPTION;\n   FLUSH PRIVILEGES;\n\n- Update the application.properties file with the database URL, username, and password (Or leave it as default).\n\n3. **Run the application**:\n- Run the Main class `SensorDatabaseApplication.java`.\n\n4. **Serial Communication**:\n- Make sure that the Arduino_C application is uploaded and running on an Arduino device (See folder “`Arduino_C`”).\n- Ensure that the sensor is connected to the correct serial port (e.g, `COM3`).\n- Adjust the serial port settings in the `SerialReader` class if needed.\n\n5. **Run the frontend script**:\n- Run the React app script for frontend presentation of the collected data (See folder “`frontend`”).\n\n## ER Diagram\n\n![Application Screenshot](resources/ER%20Diagram.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbergstrom90%2Fsensordatabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpbergstrom90%2Fsensordatabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbergstrom90%2Fsensordatabase/lists"}