{"id":13529628,"url":"https://github.com/VersusVirus-Hackathons/VersusVirus-App","last_synced_at":"2025-04-01T16:31:43.344Z","repository":{"id":122302013,"uuid":"272732913","full_name":"VersusVirus-Hackathons/VersusVirus-App","owner":"VersusVirus-Hackathons","description":"Web application for managing the VersusVirus online hackathons.","archived":false,"fork":false,"pushed_at":"2020-06-24T07:03:33.000Z","size":492,"stargazers_count":4,"open_issues_count":9,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-02T16:35:12.209Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VersusVirus-Hackathons.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-06-16T14:39:42.000Z","updated_at":"2020-10-22T22:48:00.000Z","dependencies_parsed_at":"2024-01-07T13:07:58.371Z","dependency_job_id":null,"html_url":"https://github.com/VersusVirus-Hackathons/VersusVirus-App","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VersusVirus-Hackathons%2FVersusVirus-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VersusVirus-Hackathons%2FVersusVirus-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VersusVirus-Hackathons%2FVersusVirus-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VersusVirus-Hackathons%2FVersusVirus-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VersusVirus-Hackathons","download_url":"https://codeload.github.com/VersusVirus-Hackathons/VersusVirus-App/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246670549,"owners_count":20815003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T07:00:37.988Z","updated_at":"2025-04-01T16:31:42.315Z","avatar_url":"https://github.com/VersusVirus-Hackathons.png","language":"TypeScript","funding_links":[],"categories":["Platforms"],"sub_categories":["Inactive 🧊"],"readme":"# Versus Virus Web Application\n\nThis application is custom built for managing the [Versus Virus](https://www.versusvirus.ch/) hackathon. It is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/zeit/next.js/tree/canary/packages/create-next-app).\n\n- [Dependencies](#dependencies)\n- [Production Environment](#production-environment)\n- [Development Environment](#development-environment)\n- [Project Structure](#project-structure)\n- [Database](#database)\n- [Conventions](#conventions)\n- [Creators](#creators)\n\n## Dependencies\n\nThe project uses [Yarn](https://yarnpkg.com/) for managing all dependencies. To install all necessary Node modules execute `yarn` from the root folder.\n\n## Production Environment\n\nThe app was manged with [GitLab](https://gitlab.com/) for the Versus Virus hackathons, but can be run with any service that supports Node.js and PostgreSQL.\n\n## Development Environment\n\nThe app runs on the latest LTS version of [Node.js](https://nodejs.org/en/). It relies on [PostgreSQL 11](https://www.postgresql.org/download/) and a mailserver like [Nodemailer App](https://nodemailer.com/app/). Note that the mail server needs to be available for sending a magic link for logging into the app.\n\nThe [package.json](./package.json) file contains all the commands for starting the application.\n\n### Local Environment Variables\n\nRename the `.env.example` file to `.env` and load it before running the dev command. For example:\n\n  npx env-cmd yarn dev\n\n### Local Database\n\nWhen 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`.\n\nA database import is not necessary for development, as Prisma will create the necessary structure.\n\n### Testing\n\nTests are run using [Jest](https://jestjs.io/). Simply execture `npx jest` from the command line to run.\n\n## Project Structure\n\nFor information on how the teams are created and how challenges are assigened, see the [Readme](./teamMatchMaking/Readme.md) file in the teamCreation folder.\n\n## Database\n\nA 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](./example-queries.graphql).\n\n## Conventions\n\n### Version Control\n\nThe working branch for production is \"master\". The titles of commits to master should be prefixed with a [semantic description](https://semantic-release.gitbook.io/semantic-release/) of the nature of the change. For example `fix:` or `feat:`. This will provide more meaning during the release process.\n\n### Code\n\nCode formatting is done with [Prettier](https://prettier.io/). The build process may fail if the format is not followed well enough.\n\n## Creators\n\n(in alphabetical order)\n\n- [Dimitri Balidis](https://www.linkedin.com/in/dimitri-balidis/)\n- [Daniel Isenegger](https://www.linkedin.com/in/daniel-isenegger-81a8876/)\n- [Tomáš Knápek](https://www.linkedin.com/in/knapeto/)\n- [Norbert Kremer](https://www.linkedin.com/in/norbert-kremer-90a6b76b/)\n- [Gabriella Kovács](https://www.linkedin.com/in/gabriella-kov%C3%A1cs-95915310a/)\n- [Oleg Lavrovsky](https://www.linkedin.com/in/loleg/)\n- Michael Leu\n- [Karolos Potamianos](https://www.linkedin.com/in/karolos/)\n- [Gabor Raz](https://www.linkedin.com/in/gabor-raz-03b05686/)\n- [Claudio Romano](https://www.linkedin.com/in/claudio-romano-52181744/)\n- [Marco Wettstein](https://www.linkedin.com/in/marco-wettstein-b1b8938b/)\n- [Tomáš Witek](https://www.linkedin.com/in/tomaswitek/)\n- [Nicolas Zanotti](https://www.linkedin.com/in/nicolas-zanotti/)\n- [Remo Zumsteg](https://www.linkedin.com/in/remozumsteg/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVersusVirus-Hackathons%2FVersusVirus-App","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVersusVirus-Hackathons%2FVersusVirus-App","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVersusVirus-Hackathons%2FVersusVirus-App/lists"}