UPIT is a base starter project for creating middleware tooling of any kind. It is versatile in a sense that you can create any sort of UI for the tooling you require, with any sort complexity for its backend. That may be that you want to build business logic in the front end, you may want a simple api to do it, or a full-fledged microservice backend. UPIT does not judge you, its just serves your creations.
I have created a type of this project at nearly every company i've worked at. Normally with a microservices backend with varying levels of complexity to fit the need of the task at hand. I decided it was time to take the main components of the solution and remake it into a starter project to make getting started easier. This idea has been proven in systems where you add connectors to various software solutions to move data back and forth, simply displaying data in a different format, combining data in a unified view, to creating an entire low code/no code engine to allow people without the development know how to move data between systems.
The large majority of the time spent on each of these projects has been the UI design and implementation, rather than the actual service that preforms the solution. Users are hard to please, off-the-shelf solutions (ie. Backstage) do this quickly but have side effects to customizability making it difficult to create what you set out to create leading to scope creep from the original task. UPIT solves this by hitting the middle ground of getting started with a super custom platform and quickly getting an MVP out to stakeholders and users to prove its worth. UPIT allows you to create anything a standard SaaS can, allowing you to connect any data you want and display it however you want. Leaving the backend to you to design and make robust. The main issue most of my projects have suffered from is this, spending so much time on how the user views the data we dont spend time on securing the data we move or leaving out certain features that are a requirement to stability due to time constraints.
UPIT has done all the heavy lifting of UI frameworks and design to create a simple base to build on. Supplying the UI layout, routing, components and, but not limited to packaging. This project comes packaged as an angular application website, electron desktop app, and very simple nodejs backend api server. You can build from here to create whatever you desire. That might mean deleting and/or reworking any of these features to fit the solution you are looking for. UPIT doesn't care what your building, it's here to give you the base to build from.
- Node.js
- NPM
- Angular-CLI
Please run the following from the root directory:
npm install
To start the application you have a few options. Pick what best suits your goal.
Starting the angular frontend:
npm run start
You can find the code for this in the src/
directory. It is normal angular application
with angular material design component pack.
Starting the simple API backend:
node server.js
You can find the code for this in the server.js
file at the root directory. This can be moved or split
out to another repo, the front end will connect over HTTP Rest APIs anyway.
This is the packed SaaS code into an installable for Windows, Mac or Linux. It runs the exact same as the website just in a desktop application (ie. Slack, Discord, etc.).
Building in development mode:
npm run electron-run
Packaging into installable:
npm run electron-package
You can find the code for electron in the main.js
file in the root directory. This will also
load the server.js
backend api file from the root directory.
- Jack DeSive GitHub
This project is licensed under the MIT License