Modular App is a modular application that allows to create integrations between various devices and services. It is based on a modular architecture that allows to develop new modules and integrate them into the application easily.
It's main goal is to provide a simple way for users to create integrations and to provide a simple way for developers to create new modules.
It's main features are:
-
Modules: independent packages that can be imported into the application, enabled and configured by the user.
-
Visualisation: creation of dashboard to visualise real-time data from the modules.
-
Automation: react to events and trigger actions.
-
LAN based & API: provides an UI and a local API that allows integration with other applications and devices within the local network.
This project was developped for my Bachelor Thesis (TB) of the Software Engineering Bachelor of Science at HEIG-VD in 2023.
This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
This is an example of how to list things you need to use the software and how to install them.
Below are a few examples and usefull monorepo commands to get you started with the application.
-
Clone the repo
-
Install NPM packages
npm install
-
Build the application
npm run build -W
-
Copy and fill the .env file
cp ./packages/server/.env.example ./packages/server/.env
JWT_SECRET = <generate a random string> PORT = 3000 ENV = development DB_DIR = <path_to>/tb-modularapp/packages/server/src/database MODULES_DIR = <path_to>/tb-modularapp/packages/server/modules PUBLIC_DIR = <path_to>/tb-modularapp/packages/server/public
-
Start the backend
npm run start -w packages/server
-
Start the frontend
npm run dev -w packages/frontend
Nicolas Crausaz - Website
Check out these projects that helped me build this application: