Crowdfunding Egypt - A Django platform that enables Egyptian creators to launch fundraising campaigns. Includes user registration with email verification, project creation with images, secure donations, and social features. Supports community-driven innovation across Egypt.
# Crowdfunding Platform
A modern Django-based crowdfunding platform with a complete authentication system.
## Features
### 1. Authentication System
#### Registration
- **Required Fields:**
- First name
- Last name
- Email
- Username
- Password
- Confirm password
- Mobile phone (validated against Egyptian phone numbers)
- Profile picture (optional)
#### Registration
- Users are automatically activated upon registration
- No email activation required
- Immediate access to the platform
#### Login
- Email-based authentication
- Password validation
- Facebook login placeholder (bonus feature)
#### Forgot Password (Bonus)
- Users can request password reset via email
- Secure password reset links with 24-hour expiration
- Professional email templates for password reset
- Complete password reset workflow
#### User Profile
- **Profile Viewing**: Users can view their complete profile information
- **Project Management**: View all created projects in one place
- **Donation History**: Track all donations made to projects
- **Profile Editing**: Edit all profile data except email address
- **Additional Information**: Optional fields for birthdate, Facebook profile, and country
- **Account Deletion**: Secure account deletion with confirmation modal
- **Profile Picture**: Upload and manage profile pictures
## Installation
### Prerequisites
- Python 3.8+
- pip
- virtual environment (recommended)
### Setup
1. **Clone the repository**
```bash
git clone
cd crowdfunding
```
2. **Create and activate virtual environment**
```bash
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate
```
3. **Install dependencies**
```bash
pip install -r requirements.txt
```
4. **Run migrations**
```bash
python manage.py makemigrations
python manage.py migrate
```
5. **Create superuser (optional)**
```bash
python manage.py createsuperuser
```
6. **Run the development server**
```bash
python manage.py runserver
```
7. **Access the application**
- …