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.
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.
- Node.js version >= 12.2.0
- Setup a RDBMS (MySQL, PostgreSQL, SQLite, etc.)
-
Clone the repo
git clone https://github.com/PhanDungTri/keyreveal.git
-
Install NPM packages
npm install
-
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:
- For Google ReCAPTCHA, you have to register your own site key and secret key.
-
Initialize database
npx prisma db push
-
Run the application
npm run dev
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Phan Dung Tri - LinkedIn - [email protected]