Welcome to the DUME repository! This project consists of three main components: Solid Server, BackOffice, and TheiaVision App.
Urban environments face a myriad of challenges, from waste mismanagement to infrastructure deterioration, which necessitate robust monitoring and management systems. Traditional centralized platforms, such as Theia Vision, though effective, often compromise user data sovereignty and privacy. Project DUME addresses these concerns by shifting towards a decentralized framework, thereby enhancing data control, privacy, and user engagement.
To achieve these goals, Project DUME leverages the Solid Protocol to handle large-scale media datasets in a decentralized manner. The key developments implemented include extending the Solid Protocol for efficient media data management to be used on advanced AI models like EfficientDet and YOLO for real-time urban event detection and characterization. These technological advancements enable seamless and efficient management of urban data while maintaining user sovereignty over their contributions.
Below is the architecture diagram of the DUME project:
The Solid Server is an implementation of the Solid Protocol, designed to decentralize data storage and management. Our implementation is based on node-solid-server, which provides secure and scalable decentralized data management.
For more details about Solid, check out the Solid Project.
The BackOffice application is built using Next.js. It serves as the administrative interface for managing the various aspects of the Solid Server and TheiaVision App. The BackOffice provides functionalities for user management, data administration, and system monitoring, allowing administrators to oversee the decentralized network effectively.
The TheiaVision App is a mobile application developed using Flutter. The app is designed to offer a user-friendly interface for interacting with the Solid Server and accessing decentralized data. It supports advanced AI models like EfficientDet and YOLO for real-time urban event detection and characterization. The app is available for download on the Google Play Store.
The AI Models API provides a collection of machine learning and deep learning models designed to process and analyze data for TheiaVision and other integrated applications. This API supports functionalities such as image recognition, object detection, and data anonymization, ensuring efficient and scalable AI-driven solutions.
To get started with any of these components, follow the instructions below.
-
Clone the repository:
git clone https://github.com/NGI-TRUSTCHAIN/DUME.git cd DUME/<folderName>
-
Install the necessary dependencies
-
Set Up the configurations required in each folder's README
To deploy and run the entire DUME project infrastructure, follow these steps:
Clone the DUME project repository:
git clone https://github.com/NGI-TRUSTCHAIN/DUME.git
cd DUME
Ensure the following tools and libraries are installed on your machine:
- Node.js (for Solid Server and BackOffice)
- Flutter SDK (for TheiaVision App)
- Docker (for containerized deployment)
- Python 3.x (for AI Models API)
- NVIDIA CUDA (if using AI models with GPU acceleration)
cd DUME/SolidServer
npm install
- Edit the
SolidServer/config/defaults.js
file to define your server settings (e.g., port, data folder, authentication options). - Example configuration:
{ "port": 8443, "auth": "oidc", "configPath": "./config", "dbPath": "./.db" }
Start the server using the following command:
npm start
The Solid Server will be running at: http://localhost:8443.
cd DUME/BackOffice
Run the following command to install the necessary dependencies:
npm install
-
Create an
.env
file:touch .env
-
Add your environment variables to the .env file. An example of the structure is provided below:
SOLID_SERVER_URL=http://localhost:8443
DATABASE_URL=postgis://localhost:27017
JWT_SECRET=your_jwt_secret
Start the server with the following command:
npm run dev
Visit http://localhost:3000 in your browser.
cd DUME/AIModelsAPI
Create and activate a virtual environment using the following commands:
python3 -m venv venv
source venv/bin/activate
Run the following command to install the necessary dependencies:
pip install -r requirements.txt
Start the API server with the following command:
python app/api/main.py
The API will be accessible at http://localhost:8000.
cd DUME/TheiaVision_App
Run the following command to install Flutter dependencies:
flutter pub get
Start the application using the following command
flutter run
Once the app is running, configure the server URL in the app settings (/controller/solid-protocol/request_service.dart
) to point to your Solid Server: https://localhost:8443.
We welcome contributions from the community. If you would like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch with a descriptive name.
- Make your changes and commit them with descriptive messages.
- Push your changes to your fork.
- Create a pull request with a description of your changes.
If you have any questions or feedback, please feel free to reach out to us.