Skip to content

Abhi1727/edureviews

Repository files navigation

EduReviews - Django Review Platform

A Trustpilot-like review platform built with Django for educational institutions and companies.

Project Structure

edureviews/
│
├── edureviews_project/       # Main project configuration
│   ├── __init__.py           # PyMySQL initialization
│   ├── settings.py           # Django settings with MySQL config
│   ├── urls.py
│   └── wsgi.py
│
├── companies/                 # Companies app
│   ├── models.py             # Category and Company models
│   ├── admin.py              # Admin configuration
│   └── ...
│
├── reviews/                   # Reviews app
│   ├── models.py             # Review and ReviewHelpful models
│   ├── admin.py              # Admin configuration
│   └── ...
│
├── static/                    # Static files (CSS, JS, images)
├── media/                     # User uploads (company logos)
├── .venv/                     # Virtual environment
├── requirements.txt           # Python dependencies
└── manage.py                  # Django management script

Database Models

Company Model

  • Basic Info: name, slug, website, logo, description
  • Contact: email, phone, address, city, state, country, postal_code
  • Status: is_verified, is_claimed, is_active
  • Statistics: total_reviews, average_rating (auto-calculated)
  • Category: ForeignKey to Category model

Review Model

  • Review Info: company, user, title, review_text, rating (1-5)
  • Additional: pros, cons
  • Status: is_approved, is_verified_purchase, is_featured
  • Engagement: helpful_count, not_helpful_count
  • Company Response: company_response, company_response_date

Category Model

  • Used to organize companies (e.g., Bank, Travel Insurance, Car Dealer)

ReviewHelpful Model

  • Tracks user votes on review helpfulness

Database Configuration

Current MySQL Connection:

HOST: 31.220.55.193
PORT: 3306
DATABASE: edureviews
USER: edureviews_user
PASSWORD: EduReviews@2025

Installation & Setup

1. Activate Virtual Environment

.venv\Scripts\activate

2. Install Dependencies

pip install -r requirements.txt

3. Database Connection Issues

Current Issue: The MySQL server at 31.220.55.193 is timing out during connection.

Possible Solutions:

  1. Check Firewall: Ensure port 3306 is open on the MySQL server for your IP address
  2. Check MySQL Server: Verify the server is running and accessible
  3. VPN/Network: If behind a corporate network, you may need VPN access
  4. Local Testing: You can temporarily use SQLite for local development

To use SQLite for local testing, modify edureviews_project/settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

4. Apply Migrations (once DB is accessible)

python manage.py migrate

5. Create Superuser

python manage.py createsuperuser

Follow the prompts to create an admin account.

6. Run Development Server

python manage.py runserver

Access at: http://127.0.0.1:8000/ Admin panel: http://127.0.0.1:8000/admin/

Next Steps

Immediate (Database Connection Required):

  1. Fix Database Connection: Contact your hosting provider to:

    • Whitelist your IP address for MySQL access
    • Verify remote MySQL access is enabled
    • Check if the server requires SSL connection
  2. Run Migrations:

    python manage.py migrate
  3. Create Superuser:

    python manage.py createsuperuser

Development Features to Add:

  1. URL Routing: Create views and URL patterns

    • Home page with featured companies
    • Company list/search page
    • Company detail page with reviews
    • Review submission form
    • User registration/login
  2. Templates: Create HTML templates

    • Base template with navigation
    • Company list and detail views
    • Review forms
    • User dashboard
  3. Frontend: Add Bootstrap 5 styling

    • Responsive design
    • Star rating display
    • Review cards
    • Search functionality
  4. Additional Features:

    • User authentication system
    • Email verification
    • Review moderation system
    • Company claim process
    • Search and filtering
    • Rating statistics and charts
    • REST API (optional)

Admin Panel Features

The Django admin panel is already configured with:

  • ✅ Category management
  • ✅ Company management (with verification status)
  • ✅ Review management (with approval workflow)
  • ✅ Review helpful votes tracking
  • ✅ Bulk actions (approve/verify)
  • ✅ Search and filtering

Key Features Implemented

  • ✅ Complete database models
  • ✅ Admin interface configuration
  • ✅ Automatic rating calculation
  • ✅ Review moderation system
  • ✅ Company verification system
  • ✅ Helpful/Not helpful voting
  • ✅ Company response to reviews
  • ✅ Category-based organization
  • ✅ Slug-based URLs
  • ✅ Image upload support

Technologies Used

  • Backend: Django 5.1.4
  • Database: MySQL (via PyMySQL)
  • Image Processing: Pillow
  • Forms: Django Crispy Forms with Bootstrap 5
  • Python: 3.14

Contact & Support

For database access issues, contact your hosting provider with these details:

  • Server: 31.220.55.193:3306
  • Database: edureviews
  • Issue: Connection timeout (port 3306 may need to be opened)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published