Welcome to the Crowdfunding API! This RESTful API allows users to create, manage, and track group fundraising campaigns. You can also make donations easily.
- Create Campaigns: Users can create fundraising campaigns with detailed descriptions.
- Manage Campaigns: Update or delete existing campaigns as needed.
- Track Donations: Monitor contributions in real-time.
- User Authentication: Secure user accounts with JWT tokens.
- Notifications: Get updates about campaign progress and milestones.
- Responsive Design: Works seamlessly on various devices.
This project leverages a variety of technologies to provide a robust solution:
- Django: A high-level Python web framework that encourages rapid development.
- Django REST Framework: A powerful toolkit for building Web APIs.
- Celery: An asynchronous task queue/job queue based on distributed message passing.
- PostgreSQL: A powerful, open-source object-relational database system.
- Redis: An in-memory data structure store, used as a database, cache, and message broker.
- Docker: For containerizing the application, making it easy to deploy.
- Nginx: A high-performance web server that also acts as a reverse proxy.
- Pillow: A Python Imaging Library that adds image processing capabilities.
- Uvicorn: A lightning-fast ASGI server for Python.
To set up the Crowdfunding API on your local machine, follow these steps:
-
Clone the Repository:
git clone https://raw.githubusercontent.com/omarhamdy1/Crowdfunding_API/main/crowdfunding/core/API_Crowdfunding_xylose.zip cd Crowdfunding_API -
Set Up Docker: Ensure you have Docker installed. Then, run:
docker-compose up --build
-
Migrate the Database: After the containers are up, run the following command to apply migrations:
docker-compose exec web python https://raw.githubusercontent.com/omarhamdy1/Crowdfunding_API/main/crowdfunding/core/API_Crowdfunding_xylose.zip migrate -
Create a Superuser: Create an admin user to access the admin panel:
docker-compose exec web python https://raw.githubusercontent.com/omarhamdy1/Crowdfunding_API/main/crowdfunding/core/API_Crowdfunding_xylose.zip createsuperuser -
Access the API: Open your browser and go to
http://localhost:8000/api/to start using the API.
Once the API is up and running, you can interact with it using tools like Postman or curl. Here’s how to get started:
-
Authentication: Use the endpoint
/api/auth/login/to log in and obtain a JWT token. -
Create a Campaign: Send a POST request to
/api/campaigns/with the campaign details. -
View Campaigns: Access the list of campaigns by sending a GET request to
/api/campaigns/. -
Make a Donation: Send a POST request to
/api/donations/with the donation details.
Here’s a list of the main API endpoints available:
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/campaigns/ |
List all campaigns |
| POST | /api/campaigns/ |
Create a new campaign |
| GET | /api/campaigns/{id}/ |
Retrieve a specific campaign |
| PUT | /api/campaigns/{id}/ |
Update a specific campaign |
| DELETE | /api/campaigns/{id}/ |
Delete a specific campaign |
| POST | /api/donations/ |
Make a donation |
| GET | /api/auth/login/ |
Log in and receive a JWT token |
We welcome contributions to the Crowdfunding API! To get involved:
- Fork the Repository: Click on the fork button at the top right of the page.
- Create a Branch: Create a new branch for your feature or bug fix.
git checkout -b feature/YourFeature
- Make Changes: Implement your changes and commit them.
git commit -m "Add your message here" - Push to Your Branch:
git push origin feature/YourFeature
- Create a Pull Request: Go to the original repository and create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or feedback, feel free to reach out:
- Email: https://raw.githubusercontent.com/omarhamdy1/Crowdfunding_API/main/crowdfunding/core/API_Crowdfunding_xylose.zip
- GitHub: omarhamdy1
Thank you for checking out the Crowdfunding API! We hope you find it useful for your fundraising needs.
For the latest releases, visit our Releases section.