This site is built using node, express, and postgres. It is packaged for delivery using docker and the Dockerfile in the home directory. This repository is hosted on GitHub here: https://github.com/billwright/smsc
> npm run build
This will execute the following command:
> docker build --tag csci3308registry.azurecr.io/smsc_server .
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
csci3308registry.azurecr.io/smsc_server latest f54b74834108 43 seconds ago 316MB
smsc_server latest f54b74834108 43 seconds ago 316MB
NOTE The philosophy I'm using for this project is to put all useful functions in the package.json file so that all contributers will have access to all the scripts I'm using.
Via the command line:
Via the Docker Desktop UI:
This application uses Postgres as our SQL database. The database is called SMSC and has been created in Azure. It runs on a server machine named smsc-db-server. This is a server-less database that is spun down after 1 hour of inactivity. Hence, it could take a bit to spin back up. Make sure the app can handle this. The Azure database dashboard is here: https://portal.azure.com/#@colorado.edu/resource/subscriptions/6bb797a5-c098-4e34-8058-b6ca22814590/resourceGroups/csci-3308-ResourceGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/smsc-db-server/overview
My home console for Azure is here: The admin credentials for logging into this database are:
user: satan ps: Scrambling!
Currently, this site is deployed to Azure and can be viewed here: https://csci3308simple-server.azurewebsites.net/
This isn't right. It was for a demo app, but once I deploy, update this.
It is automatically deployed via a GitHub Actions pipeline that can be viewed here:
To test this service, first start up the docker postgres image like this:
> docker run -it --rm --env POSTGRES_PASSWORD=password postgresOr just do:
> npm run startDBIf the database isn't connected, we'll have to create it:
> psql --host=localhost --port=5432 --username=postgres --command='create database smsc;'
Password for user postgres:
CREATE DATABASENow load the starting data into the database:
> npm run loadDBNext start the server so that it automatically restarts on changes with:
> npm startThis is defined in the package.json file as:
"start": "echo 'Copying proper .env file...' && cp environments/.env.smsc ./.env && nodemon index.js"This copies the local environment file to the local directory so that those properties are used when starting up the server.
I'm using nyc for code coverage and that is configured by the .nycrc file in the root directory.
Documentation is here: https://www.npmjs.com/package/nyc
