Skip to content

PhanDungTri/keyreveal

Repository files navigation


Logo

KEYREVEAL

You don't have to try all the keys

About The Project

KEYREVEAL thumbnail

Everyone ❤️ giveaways and so do I 🎉

I've joined a lot of them, and most of them are on social media. The host put a bunch of product keys in a Facebook group or subreddit where everyone could see them. First come, first served is how these free things work. Kind people leave the message after taking the keys so that people who arrive later will know which key is still free.

But there are also a lot of people, whom I call "ninjas," who just sneak in, grab the keys, and leave without saying a word. This means that latecomers have to try each key one at a time to find out that it has already been taken. What a bad thing!

KEYREVEAL makes it easy for everyone to enjoy giveaways to the fullest by keeping track of the status of the keys. So that people can see which keys have already been taken and which ones are still open. Also, the host can choose whether the giveaway is open to the public or not, or they can use a password to protect it. Lastly, KEYREVEAL is free to use.

(back to top)

Getting Started

KEYREVEAL is a fullstack Next.js project and it's strongly typed with TypeScript. I'm using Mantine, "a fully featured React components library", to build the frontend and it's super cool. To deal with forms, I'm using React Hook Form and Zod for data validation. Prisma is the best choice to work with the database.

Prerequisites

  • Node.js version >= 12.2.0
  • Setup a RDBMS (MySQL, PostgreSQL, SQLite, etc.)

Installation

  1. Clone the repo

    git clone https://github.com/PhanDungTri/keyreveal.git
  2. Install NPM packages

    npm install
  3. Open the .env.example file, copy these below fields to .env file and replace the values with your own.

    DATABASE_URL=
    RECAPTCHA_SECRET_KEY=
    NEXT_PUBLIC_RECAPTCHA_SITE_KEY=

    Note:

  4. Initialize database

    npx prisma db push
  5. Run the application

    npm run dev

(back to top)

Screenshots

example create

example giveaway

example random giveaway

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Phan Dung Tri - LinkedIn - [email protected]

(back to top)

About

You don't have to try all the keys

Resources

License

Stars

Watchers

Forks

Languages