Tar Heel Calendar is our final project for COMP 426: Modern Web Programming. It is under development.
In order to run this project locally, you must have the following software installed:
- NodeJS and NPM. These will handle our JavaScript dependencies.
- MariaDB. (Theoretically MySQL might work too but let's not be soulless here.)
HeidiSQL is also recommended for viewing the MariaDB database directly. It can be installed alongside MariaDB.
The database then needs to be set up. Run the following in the command line to do this:
npm run create-database
npm run create-tables
These processes will kinda just keep going even after they are done, so count to five and then force quit the process.
- Have the MariaDB server running. In order to log in/connect, JawsDB will interject their information if on the Heroku server, OR the calendar will use environmental variables for credentials (
DBHOST
,DBUSER
,DBPASSWORD
), or if those don't exist, defaults will be used ('localhost'
,'root'
,'password'
). - Run
npm run start
. This will first build and then start the server. - Now the app has started! Note you must manually connect to your local host, Node.js will not open this up automatically for you.
If you're only working on one end of the project, this may be a bit slow. There are a few other commands you can use if you feel this is the case:
npm run start-client
will run only the frontend. Note that, obviously, the frontend may not work very well without the backend.npm run start-server
will run the backend without attempting to build the frontend. If your frontend is already built, this is fine, but any changes to the frontend must be rebuilt manually.npm run build
will build the frontend.npm run test
will run frontend unit tests.npm run drop-tables
will drop all tables in the database (if they exist).npm run create-sample-data
will insert some sample data into the database for testing purposes.
The backend API is fully documented here.
- Node.js
- React (with Create React App)
- Bulma
- axios
- express
- mysql (the npm package)
- MariaDB
- Heroku
- JawsDB
Other technologies used are listed in package.json
.
- Victoria Hoffmann
- Alfred Mathew
- Eric Schneider
- Ezri White
The live website is currently located at tar-heel-calendar.herokuapp.com. Note it is not stable nor 100% secure, so use with caution. The live website will restart with each upstream Git commit.