Gifter is a web application designed to simplify the process of gift-giving. It allows users to create a personalized gift wishlist and share it with friends and family. Whether it's for a birthday, wedding, holiday, or any other special occasion, Gifter makes it easy for both gift recipients and gift-givers to connect and exchange meaningful presents.
The key features of Gifter include:
- Non-registered users can search for wishlists by email
- User registration and login with email
- Adding gifts to the wishlist with details such as status, priority, category, occasion, price, and links
- Managing and updating the wishlist
Gifter is currently in version 0.9:
Check my trello agile board that I use for managing tasks:
Gifter incorporates a variety of technologies and testing libraries to provide a dynamic and efficient gift-sharing platform. The key technologies and testing libraries used in this project include:
- Next.js
- Typescript
- Firebase Authentication and Firestore
- React-firebase-hooks
- React Hook Form
- TailwindCSS
- Vitest
These technologies, along with the testing libraries, collectively contribute to Gifter's functionality, security, real-time updates, and user-friendly interface. By leveraging these tools, I've managed to ensure the reliability and quality of this application.
To run Gifter locally, follow these steps:
-
Clone the repository:
git clone https://github.com/mazurcodes/Gifter-Next13.git
-
Navigate to the project directory:
cd gifter-next13 -
Install the dependencies:
npm install
-
Set up the environment variables:
Create a .env file in the root of the project. Add the necessary environment variables, such as Firebase API keys and configuration details:
NEXT_PUBLIC_FIREBASE_API_KEY=Here_Goes_Your_Public_FIREBASE_API_KEY NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=Here_Goes_Your_Public_FIREBASE_AUTH_DOMAIN NEXT_PUBLIC_FIREBASE_PROJECT_ID=Here_Goes_Your_Public_FIREBASE_PROJECT_ID NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=Here_Goes_Your_Public_FIREBASE_STORAGE_BUCKET NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=Here_Goes_Your_Public_FIREBASE_MESSAGING_SENDER_ID NEXT_PUBLIC_FIREBASE_APP_ID=Here_Goes_Your_Public_FIREBASE_APP_ID NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=Here_Goes_Your_Public_FIREBASE_MEASUREMENT_ID
-
Run the development server:
npm run dev
-
Open your web browser and visit http://localhost:3000 to access Gifter.
In the project directory, you can run the following scripts:
-
Runs the development server, allowing you to preview the app in development mode.
npm run dev
-
Builds the app for production, creating an optimized bundle.
npm run build
-
Starts the production server to serve the built app.
npm start
-
Runs the linter to check for code style and formatting issues.
npm run lint
-
Runs the tests using the vitest testing library.
npm test -
Runs the tests and generates a coverage report using vitest.
npm run coverage
Special thanks to Przemek Majewski for his valuable contributions to the development of Gifter. His assistance in identifying and resolving bugs was instrumental in improving the overall appearance and functionality of the application.
This project is licensed under the MIT License.