A fully admin-controlled Django website for Prime Choice Kids Care school. All content is managed through Django Admin - no code editing needed.
- Admin-Controlled Content: Manage all website content from Django Admin portal
- PostgreSQL Support: Configure PostgreSQL database for Vercel deployment directly from admin
- Staff Management: Upload and manage staff member profiles with photos and bios
- Programs: Display school programs (Crèche, Preschool, Lower Primary)
- News & Events: Create and publish news articles and events with dates and details
- Contact Management: Manage contact messages and automated replies
- Social Media: Configure 8 social media platforms (Facebook, Instagram, YouTube, TikTok, LinkedIn, Twitter, Pinterest, WhatsApp)
- Email Configuration: Set SMTP settings from admin portal
- Analytics: Track clicks on CTAs, calls, WhatsApp messages, and more
- Responsive Design: Mobile-friendly design that works on all devices
primechoice_school/
├── core/ # Main app
│ ├── models.py # Database models
│ ├── views.py # Views and logic
│ ├── admin.py # Admin configuration
│ ├── templates/ # HTML templates
│ └── static/ # CSS, JS, images
├── school_site/ # Project settings
│ ├── settings.py # Django configuration
│ ├── urls.py # URL routing
│ └── wsgi.py # WSGI config for Vercel
├── manage.py # Django management script
├── requirements.txt # Python dependencies
└── vercel.json # Vercel deployment config
- Python 3.10+
- pip
- Virtual environment
-
Clone the repository
git clone https://github.com/arhinful2/primechoice.git cd primechoice -
Create and activate virtual environment
python -m venv venv # Windows venv\Scripts\activate # Mac/Linux source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Apply database migrations
python manage.py migrate
-
Create superuser (admin account)
python manage.py createsuperuser
Follow the prompts to create your admin login
-
Run development server
python manage.py runserver
Visit: http://localhost:8000
-
Access Admin Panel Visit: http://localhost:8000/admin Login with your superuser credentials
- Go to Django Admin → Site Settings
- Edit school name, logo, tagline, contact info, etc.
- Save changes
- Go to Django Admin → Staff Members
- Click "Add Staff Member"
- Fill in name, role, bio, and upload photo
- Set order (lower numbers appear first)
- Check "Is Active" to display on website
- Save
- Go to Django Admin → Testimonials
- Click "Add Testimonial"
- Fill in name, role, quote, and upload avatar
- Set order
- Check "Is Active"
- Save
- Go to Django Admin → Site Settings
- Scroll to social media section
- Enter URLs for Facebook, Instagram, YouTube, TikTok, LinkedIn, Twitter, Pinterest, WhatsApp
- Save
- Go to Django Admin → Site Settings
- Scroll to SMTP Configuration section
- Enter your email provider settings:
- SMTP Host: Your email provider's SMTP server (e.g., smtp.gmail.com)
- SMTP Port: Usually 587 or 465
- SMTP Username: Your email address
- SMTP Password: Your app-specific password
- From Email: The email address to send from
- Save
- Go to Django Admin → Site Settings
- Scroll to "Database Configuration" section
- Select PostgreSQL from DB Engine dropdown
- Fill in:
- DB Host: Your Vercel PostgreSQL host
- DB Port: Usually 5432
- DB Name: Your database name
- DB User: Database username
- DB Password: Database password
- Save
- IMPORTANT: Restart the application for database changes to take effect
See DEPLOYMENT.md for step-by-step instructions on:
- Setting up GitHub repository
- Configuring PostgreSQL on Vercel
- Deploying the application
- Setting environment variables
- Managing static files
For production deployment, set these environment variables in Vercel:
DEBUG=False
SECRET_KEY=your-secure-random-key
ALLOWED_HOSTS=yourdomain.com,www.yourdomain.com
DATABASE_URL=postgresql://user:password@host:5432/database
- Static Files: CSS, JS, images (served by Vercel)
- Media Files: User uploads (staff photos, testimonials, gallery images)
- In development: Stored locally in
/media/folder - In production (Vercel): Configure blob storage or external storage
- In development: Stored locally in
- Django Documentation: https://docs.djangoproject.com/
- Vercel Docs: https://vercel.com/docs
- PostgreSQL Docs: https://www.postgresql.org/docs/
- Never commit
.envfiles or database passwords to GitHub - Use strong SECRET_KEY in production
- Keep Django updated for security patches
- Use HTTPS in production (Vercel handles this automatically)
This project is proprietary to Prime Choice Kids Care.