This repository is the culmination of a half-semester long project for CIS 371 at GVSU. Deployment was done using Google services, and can be publicly reached at https://famous-mix-275004.ue.r.appspot.com/.
The architecture of the application is a fully functional, full stack web app.
This small module contains contains a few model classes that improve consistency from the client and server. Because of the shared codebase, we can make complex queries easier, such as create tables on-the-fly.
The server is a relatively simple Express.js/TypeScript API. All requests and steps to get to a response utilize the Promise() api. A unique, challenging part of the API was a route that creates a table on-the-fly based upon properties within a Schema.
The client is a complex React.js/TypeScript web application built using the Material-UI framework. Application routing is done using React Router. Each view is responsible for making one if not several API calls using the Axios library. Upon receiving data from the API, it is converted into a model class outlined from the shared module.
Deployment was done using Google's App Engine, and Google's Cloud SQL. Sidenote: You get $300 worth of free credits to use on Google's services! How convenient!
Universal scouter is divided into 3 separate projects. The model used is a basic client/server architecture with some shared codebase between the two projects. The stack is as follows:
- MySQL - Google Cloud SQL Services
- Express.js - Server/API
- React.js - Client-Side Application
- Node.js - Deployment platform
The shared module must be taken care of first. Follow these steps:
- Install dependencies via
npm install
- Run the test suite via
npm test
- Build the application code via
npm run build
The next module is responsible for the front-end portion of the project.
- Install dependencies via
npm install
- Build the application code via
npm run build
The last module is responsible for the back-end portion of the project.
- Install dependencies via
npm install
- Build the application code via
npm run build