An open API service indexing awesome lists of open source software.

https://github.com/sais-opu/crowdcube-client-side

Crowdcube is a dynamic crowdfunding platform that allows users to create, manage, and contribute to campaigns with secure authentication and real-time updates.
https://github.com/sais-opu/crowdcube-client-side

firebase-auth html-css-javascript lottie-animation mongodb-database nodejs react-router react-toastify reactjs sweetalert2 vite

Last synced: 2 months ago
JSON representation

Crowdcube is a dynamic crowdfunding platform that allows users to create, manage, and contribute to campaigns with secure authentication and real-time updates.

Awesome Lists containing this project

README

          

# 🏆 CrowdCube
![CrowdCube Banner](https://i.ibb.co/vCG8d5dr/crowd.png)

CrowdCube is a dynamic crowdfunding platform that enables users to create, manage, and contribute to fundraising campaigns. Whether it's for personal needs, creative projects, startups, or business ventures, CrowdCube ensures a seamless and user-friendly experience.
## Project Purpose

CrowdCube is designed to empower individuals, creative projects, startups, and businesses by offering an easy-to-use crowdfunding platform. The goal is to create a seamless and interactive experience for users to raise funds, manage campaigns, and support causes they believe in, all within a secure and responsive web application.

## Project Overview

CrowdCube is a dynamic crowdfunding platform that allows users to create, manage, and contribute to fundraising campaigns. The platform provides easy navigation and functionality for both campaign owners and contributors. Users can securely log in, create or browse campaigns, and donate to causes directly. With real-time data updates, interactive notifications, and a visually appealing interface, CrowdCube ensures a smooth experience for all users, whether they are launching a campaign or supporting one.
## 🌍 Live Demo

🔗 **[Visit CrowdCube Live](https://crowdcube-1249a.web.app/)**

---

## 🚀 Features

✅ **User Authentication** – Secure login/registration using email/password and third-party OAuth, with toast notifications for user feedback.
✅ **Campaign Management** – Create, update, delete, and browse campaigns with real-time data updates and protected routes.
✅ **Donation Features** – Donate to active campaigns, view personal contributions, and receive alerts for expired campaigns.
✅ **Interactive Navigation** – Fully responsive design, dynamic navbar, dark/light theme toggle, and sorting functionality.
✅ **Hosting & Deployment** – Client is hosted on **Netlify/Surge/Firebase**, and the server is deployed on **Vercel with Firebase integration**.

---

## 🛠️ Technologies Used

- **Frontend**: React, React Router, Material UI, TailwindCSS, DaisyUI
- **Backend**: Firebase, MongoBD
- **Deployment**: Vercel, Netlify, Firebase Hosting
- **State Management & UI**: React Hooks, Emotion, Lottie, Vite
- **Notifications & Alerts**: React Toastify, SweetAlert2
- **Deployment**: Vercel, Firebase Hosting

---
## Additional Resources

Here are some useful resources to help you understand the technologies used in this project:

- [React.js Documentation](https://reactjs.org/docs/getting-started.html)
- [Tailwind CSS Documentation](https://tailwindcss.com/docs)
- [Firebase Authentication](https://firebase.google.com/docs/auth)
- [MongoDB Atlas](https://www.mongodb.com/cloud/atlas)

## Project Setup
Follow these steps to set up the project locally:

```sh
# Clone the repository
git clone https://github.com/Sais-opu/CrowdCube-Client-side.git

# Navigate to the project folder
cd crowdcube

# Install dependencies
npm install

# Start the development server
npm run dev
```
```sh
#Or you can try to install
npm i react-router-dom
npm i react-toastify
npm install
```

## 🛆 Dependencies

The project uses the following dependencies:

```json
{
"name": "crowdcube",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@mui/icons-material": "^6.3.0",
"@mui/material": "^6.3.0",
"firebase": "^11.1.0",
"lottie-react": "^2.4.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^7.1.1",
"react-simple-typewriter": "^5.0.1",
"react-spinners": "^0.15.0",
"react-toastify": "^11.0.2",
"sweetalert2": "^11.15.10"
},
"devDependencies": {
"@eslint/js": "^9.17.0",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"daisyui": "^4.12.23",
"eslint": "^9.17.0",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.16",
"globals": "^15.14.0",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.17",
"vite": "^6.0.5"
}
}
```

---