Welcome to the backend repository for Gift Me, an app designed to manage the creation of groups, wishlists, and the addition of gifts to those wishlists. This app helps users keep track of their gift-giving participation within various groups.
- Introduction
- Features
- Tech Stack
- Installation
- Configuration
- Usage
- API Endpoints
- Contributing
- License
Gift Me is a backend service that supports the management of groups and wishlists, allowing users to add and track gifts within these lists. The application leverages Supabase for authentication and is built using Node.js, Express, and Prisma (ORM) for robust and efficient backend operations.
- Group Management: Create and manage groups of users.
- Wishlist Management: Create and manage wishlists for each group.
- Gift Tracking: Add and track gifts in wishlists.
- User Authentication: Secure user login and registration using Supabase.
- Node.js: JavaScript runtime for building scalable network applications.
- Express: Web framework for Node.js to create robust APIs.
- Prisma: Modern ORM for Node.js and TypeScript.
- Supabase: Backend-as-a-Service (BaaS) providing authentication, database, and storage services.
-
Clone the repository:
git clone https://github.com/yourusername/gift-me-backend.git cd gift-me-backend
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env
file in the root directory and add the following variables:DATABASE_URL=your_database_url SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_key
-
Run database migrations:
npx prisma migrate dev
-
Start the server:
npm start
The application relies on environment variables for configuration. Ensure that you have a .env
file with the necessary configurations.
After setting up the project, you can start the server and use the provided API endpoints to manage groups, wishlists, and gifts.
- POST /auth/signup: Register a new user.
- POST /auth/login: Authenticate a user.
- POST /groups: Create a new group.
- GET /groups: Get a list of all groups.
- GET /groups/:id: Get details of a specific group.
- PUT /groups/:id: Update a group.
- DELETE /groups/:id: Delete a group.
- POST /wishlists: Create a new wishlist.
- GET /wishlists: Get a list of all wishlists.
- GET /wishlists/:id: Get details of a specific wishlist.
- PUT /wishlists/:id: Update a wishlist.
- DELETE /wishlists/:id: Delete a wishlist.
- POST /gifts: Add a new gift to a wishlist.
- GET /gifts: Get a list of all gifts.
- GET /gifts/:id: Get details of a specific gift.
- PUT /gifts/:id: Update a gift.
- DELETE /gifts/:id: Delete a gift.
We welcome contributions to enhance the functionality of Gift Me. Please follow these steps to contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes and commit them (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for more information.
Thank you for using Gift Me! If you have any questions or need further assistance, feel free to open an issue or contact the project maintainers.