π Tech Stack
- Current
- Legacy
- Goal
Current
- Shelf 10.23.1, Dart 8.2, MongoDB 8.0.39, and Apache 2.4.52 for the backend.
ποΈ Architecture Overviewβ
| Component | Technology |
|---|---|
| Frontend (Mobile & Web π±π») | None |
| Backend | π₯οΈ Dart |
| Database | ποΈ MongoDB |
π Detailed Stackβ
Frontendβ
No dedicated frontend, accessed through BackBone
Backendβ
- Framework: Shelf 10.23.1
- Language: Dart 8.2
- Database: MongoDB 8.0.39
- Web Server: Apache 2.4.52
π’ Infrastructure Architecture
- VPS Specs: 4 vCPU Cores, 6 GB RAM, 400 GB SSD.
- Ubuntu Linux 22.04.1 with Virtualmin as the control panel.
π§ Infrastructure Componentsβ
| Component | Details |
|---|---|
| Server | π₯οΈ VPS |
| Control Panel | ποΈ Virtualmin |
π¬ Detailed Infrastructureβ
Serverβ
- Type: π₯οΈ VPS
- 4 vCPU Cores
- 6 GB RAM
- 400 GB SSD
- Operating System: Ubuntu Linux 22.04.1
- Control Panel: Virtualmin
What we have now
- Flutter 3.22.0
- Dart 3.4.0
- Provider
- API to backend
Legacy
- Flutter 3.22.0 and Dart 3.4.0 for mobile and web development.
- Laravel 10.23.1, PHP 8.2, MySQL 8.0.39, and Apache 2.4.52 for the backend.
ποΈ Architecture Overviewβ
| Component | Technology |
|---|---|
| Frontend Mobile & Web | π±π» Flutter |
| Backend | π₯οΈ Laravel |
| Database | ποΈ MySQL |
π Detailed Stackβ
Frontendβ
- Framework: Flutter 3.22.0
- Language: Dart 3.4.0
- Platforms: π± Mobile (iOS, Android & Web) and π» Desktop (Browser & PWA)
Backendβ
- Framework: Laravel 10.23.1
- Language: PHP 8.2
- Database: MySQL 8.0.39
- Web Server: Apache 2.4.52
At the moment we conneted directly to the content (BackBone) API, we want to connet with our own backend and allow our backend to connect with varius APIs.
π’ Infrastructure Architecture
- VPS Specs: 4 vCPU Cores, 6 GB RAM, 400 GB SSD.
- Ubuntu Linux 22.04.1 with Virtualmin as the control panel.
π§ Infrastructure Componentsβ
| Component | Details |
|---|---|
| Server | π₯οΈ VPS |
| Control Panel | ποΈ Virtualmin |
π¬ Detailed Infrastructureβ
Serverβ
- Type: π₯οΈ VPS
- 4 vCPU Cores
- 6 GB RAM
- 400 GB SSD
- Operating System: Ubuntu Linux 22.04.1
- Control Panel: Virtualmin
What we have now
- Flutter 3.22.0
- Dart 3.4.0
- Provider
- API to backend
Goals
Getting to our aideal teach stack will be a five step process, starting with cost and performace improvments and ending with a state of the art infrastructure.
For frontend development we will utilize the Flutter framework, which uses the Dart programming language. We will utilize Provider for state management.
Google Cloud Platform will be used for the server Firebase has many tools that we can use to ensure that the data is safe and our team knows how to make it as safe as possible.
Everything
- Phase One
- Phase Two
- Phase Three
- Phase Four
- Phase Five
Goals for Phase Oneβ
-
Unify web and mobile views
-
Split out widgets into it's independant files
-
add more features
Transition Phase One
- Refactor
- Create many smaller widgets Phase Three | Step 2 Phase Four | Step 3
- Move as much as possible into a package
- Separate package development
- Separate into independent βmini appβ
- Connect with U Content API
k
k
k
Final result Panel/transition What we have now
- Single app
- The panel is hosted on VPS Specs: 4 vCPU Cores, 6 GB RAM, 400 GB SSD.
- Ubuntu Linux 22.04.1 with Virtualmin as the control panel.
- The panel shares a server with the database and control panel backend Step 1
- Separate javascript (maybe we skip)
- hosing to firebase Step 2
- make all admin feature avalible in the api
- Develop publisher Step 3 -Delete panel -Final result -We will be using Flutter for frontend development with Provider as the state management. Dart as the programming language,
Hostingβ
Our web version will be hosting on Firebase Hosting
Backendβ
Phase One | What we have nowβ
- To start we will utilize only APIs for all functionality along with node.js to pull its data into our own database and from there connect with our client app. Laravel 10.23.1, PHP 8.2, MySQL 8.0.39, and Apache 2.4.52 for the backend. At the moment the backend has direct access to the database, there is no api for data handling. The backend is hosted on VPS Specs: 4 vCPU Cores, 6 GB RAM, 400 GB SSD. The backend shares a server with the database and control panel Phase Two | Transition Step 1 Use new API,
Phase Three | Step 2β
Refactor (create smaller functions) make functions βmicro functionsβ, We will move any functionality we can into micro-functions and host them in firebase or google cloud. move to new server/cloud functions, integrate to API/new API
Step 3β
- Change functions from PHP to Node.JS
- Separate the content functions from the rest
- create a separate backend
- Build our own backend
- Remove as many third party dependencies and - switch to our own products such as U Commerce, etc.
Final resultβ
new