Challenge view
Back to ProjectVersusVirus-App
Web application for managing the VersusVirus online hackathons.
Versus Virus Web Application
This application is custom built for managing the Versus Virus hackathon. It is a Next.js project bootstrapped with create-next-app
.
- Dependencies
- Production Environment
- Development Environment
- Project Structure
- Database
- Conventions
- Creators
Dependencies
The project uses Yarn for managing all dependencies. To install all necessary Node modules execute yarn
from the root folder.
Production Environment
The app was manged with GitLab for the Versus Virus hackathons, but can be run with any service that supports Node.js and PostgreSQL.
Development Environment
The app runs on the latest LTS version of Node.js. It relies on PostgreSQL 11 and a mailserver like Nodemailer App. Note that the mail server needs to be available for sending a magic link for logging into the app.
The package.json file contains all the commands for starting the application.
Local Environment Variables
Rename the .env.example
file to .env
and load it before running the dev command. For example:
npx env-cmd yarn dev
Local Database
When you make changes in prisma/schema.prisma, you can create a migration by running yarn prisma:migrate:save
. Apply it to your local db with yarn prisma:migrate:up
.
A database import is not necessary for development, as Prisma will create the necessary structure.
Testing
Tests are run using Jest. Simply execture npx jest
from the command line to run.
Project Structure
For information on how the teams are created and how challenges are assigened, see the Readme file in the teamCreation folder.
Database
A GraphQl tool is available on the endpoing /api/graphql
. You will need to be logged into the application as an administrator in order to execute mutations. Typical queries can be found in the file example-queries.graphql.
Conventions
Version Control
The working branch for production is "master". The titles of commits to master should be prefixed with a semantic description of the nature of the change. For example fix:
or feat:
. This will provide more meaning during the release process.
Code
Code formatting is done with Prettier. The build process may fail if the format is not followed well enough.
Creators
(in alphabetical order)