This repository showcases a complete workflow for real-time machine data monitoring. It connects a native C++ engineβeither mock or real, via DLLβto a .NET backend using SignalR and Entity Framework Core. The modern React frontend enhances user interaction and provides a seamless experience. This project serves as a learning tool, a prototype, and a reference for real-world industrial or IoT dashboards.
- C++: For the embedded engine.
- .NET Core: Backend framework for the application.
- SignalR: For real-time notifications.
- Entity Framework Core: For database management.
- React: Frontend framework for building user interfaces.
- Nginx: For web server management and configuration.
- Docker: For containerization of the application.
- Tailwind CSS: For styling the frontend.
- TypeScript: For type safety in JavaScript.
- XUnit: For testing the application.
To get started with this project, follow these steps:
-
Clone the repository:
git clone https://github.com/Josh-Hil/Embedded-Motor-Engine-Speed-Temperature-Measurement--CPP-DotNet-React.git cd Embedded-Motor-Engine-Speed-Temperature-Measurement--CPP-DotNet-React
-
Install .NET Core: Ensure you have .NET Core installed. You can download it from the official site.
-
Set up the backend:
- Navigate to the backend directory:
cd Backend
- Restore dependencies:
dotnet restore
- Run the application:
dotnet run
- Navigate to the backend directory:
-
Set up the frontend:
- Navigate to the frontend directory:
cd Frontend
- Install Node.js dependencies:
npm install
- Start the frontend:
npm start
- Navigate to the frontend directory:
-
Configure Nginx: Refer to the
nginx.conf
file in theConfig
directory for the setup. -
Docker setup: If you prefer using Docker, run:
docker-compose up
After installation, you can access the application at http://localhost:3000
. The dashboard displays real-time data from the C++ engine. You can monitor engine speed and temperature readings. The application also supports real-time notifications for any significant changes.
- Real-Time Monitoring: Get instant updates on engine speed and temperature.
- User-Friendly Dashboard: Intuitive UI built with React.
- Data Visualization: Charts and graphs to represent engine data.
- Notifications: Receive alerts for critical readings via SignalR.
- Database Integration: Store and manage data using Entity Framework Core.
- Responsive Design: Works well on various devices.
- Testing Framework: Built-in tests using XUnit for reliability.
The project is organized as follows:
Embedded-Motor-Engine-Speed-Temperature-Measurement--CPP-DotNet-React/
β
βββ Backend/
β βββ Controllers/
β βββ Models/
β βββ Data/
β βββ Startup.cs
β βββ Program.cs
β
βββ Frontend/
β βββ src/
β βββ public/
β βββ package.json
β βββ tailwind.config.js
β
βββ Config/
β βββ nginx.conf
β βββ docker-compose.yml
β
βββ README.md
We welcome contributions to improve this project. Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature
- Make your changes and commit them:
git commit -m "Add some feature"
- Push to the branch:
git push origin feature/YourFeature
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE
file for details.
To download the latest release, visit the Releases section. Download and execute the necessary files to get started with the application.
For additional updates, you can always check the Releases section.
- Thanks to the open-source community for their contributions.
- Special thanks to contributors who helped improve this project.
For any questions or feedback, please reach out via GitHub issues or contact me directly.