Welcome to the Secret Santa Generator web application! This app allows users to create Secret Santa groups, randomly assign participants to each other, and notify them via email. It is built using Next.js, styled with Tailwind CSS, and connected to a SQLite database via Prisma ORM. The app also uses Nodemailer to send email notifications to participants with their assigned Secret Santa.
- Next.js: Fast and scalable React framework for building web applications.
- Tailwind CSS: A utility-first CSS framework for quick and responsive styling.
- Prisma ORM: Type-safe ORM to interact with the SQLite database.
- SQLite3: Lightweight, serverless database engine for storage.
- React Icons: Customizable SVG icons for React components.
- Nodemailer: Sends email notifications to users with their Secret Santa assignment.
The app supports the following languages:
- English
- German
- Romanian
To get the Secret Santa Generator app running on your local machine, follow these steps:
npm install
Generate the Prisma database schema and migrate the SQLite database with this command:
npx prisma migrate dev
To send emails, you'll need to configure Nodemailer with your email service credentials. Add the following to your .env
file:
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-email-password
Important: If using Gmail, you may need to enable access for less secure apps or use OAuth for better security.
npm run dev
The app will now be running at http://localhost:3000
. Open your browser to interact with the Secret Santa Generator app.
This project utilizes the following technologies:
- Next.js: React framework for building server-rendered web applications.
- Tailwind CSS: Utility-first CSS framework for quick styling and responsive design.
- Prisma ORM: Type-safe ORM for interacting with the SQLite database.
- SQLite3: Lightweight and serverless database engine for local storage.
- React Icons: Customizable and scalable icons for React components.
- Nodemailer: Email-sending functionality for sending out Secret Santa assignments.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to the following tools and libraries that made this project possible:
- Next.js for the React framework.
- Tailwind CSS for easy and flexible styling.
- Prisma ORM for managing the SQLite database with type safety.
- SQLite3 for the lightweight database engine.
- React Icons for customizable icons.
- Nodemailer for sending email notifications.