project-hackathon icon indicating copy to clipboard operation
project-hackathon copied to clipboard

🌻 An open-source hackathon management. Hackafor February 2023.

Getting Started  ❖  Team  ❖  Overview  ❖  Features  ❖  Stack  ❖  Deploy β†—οΈŽ

GitHub actions GitHub stars GitHub issues GitHub forks GitHub license

✌ Team

πŸ› οΈ Stack

✨ Features

General:

  • [x] Authentication with Github.

For the participant:

  • [x] The user can add his project.
  • [ ] The user can edit his project before a deadline (soon).
  • [ ] When the deadline is reached, the user can only see the project (soon).

For the admin:

  • [x] The admin can add a new hackathon.
  • [x] The admin can edit a hackathon.
  • [x] The admin can delete a hackathon.
  • [x] The admin can share the link to the hackathon.
  • [x] The admin can see the list of projects.
  • [x] The user can set a winner (mark a user as a winner).
  • [x] The user can set a project as 'reviewed'.

πŸͺ Overview

  • We have extracted the icons used in the app due to a bug in the React library - issue.

πŸš€ Getting Started

Project settings:

  1. Clone or fork the repository:
[email protected]:pheralb/project-hackathon.git
  1. Install dependencies with your favorite package manager:
# with npm:
npm install

# with pnpm:
pnpm install

# with yarn:
yarn install

# with ultra:
ultra install

Environment variables:

  1. Create a .env file in the root of the project with the following variables:
# CockroachDB connection string:
DATABASE_URL = ""

# Next-Auth config:
NEXTAUTH_SECRET="" # Generate a random string.
NEXTAUTH_URL="" # Your project url, e.g. http://localhost:3000.

# Github OAuth Provider:
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""

CockroachDB settings:

  1. Create a free cluster.
  2. Create a SQL user.
  3. To connect to the user, copy the connection string and paste it in the .env file, replacing the DATABASE_URL variable.

Github OAuth Provider settings:

  1. Click here to create new Github OAuth app.
  2. Go to "Client secrets" and generate new client secret and and paste it into GITHUB_CLIENT_SECRET env.
  3. Copy the Client ID and paste it into GITHUB_ID env.

Run the project:

  1. Run in your terminal:
# with npm:
npm run dev

# with pnpm:
pnpm run dev

# with yarn:
yarn dev

# with ultra:
ultra dev

and open http://localhost:3000 πŸš€.

😊 Contributing

☁ Deploy

πŸ”‘ License