Skip to content

Repository files navigation

University Admissions Platform

A comprehensive, modern multilingual university marketing, admissions and recruitment platform built with Next.js, Django, and PostgreSQL.

🚀 Features

Public Website

  • Modern, responsive design (Desktop, Tablet, Mobile)
  • Hero section with call-to-action buttons
  • Featured universities and programs
  • Advanced search and filtering
  • Testimonials and FAQs
  • Blog/News section
  • Contact form
  • Multilingual support (English & Arabic with full RTL)

Student Portal

  • User registration and authentication
  • Student dashboard
  • Browse and search universities/programs
  • Submit applications online
  • Upload required documents
  • Track application status
  • Receive notifications

Admin Dashboard

  • Complete university and program management
  • Advanced applicant management
  • Document review and approval workflow
  • Content management (pages, banners, FAQs, testimonials, blog)
  • Website branding and theme customization
  • Role-based access control
  • Audit logging
  • Export and reporting features

Technical Highlights

  • API-first architecture (REST with Django)
  • JWT-based authentication with token refresh
  • Comprehensive permission system
  • Multilingual content management
  • Full RTL support for Arabic
  • Responsive design with Tailwind CSS
  • File upload with validation and security
  • Real-time audit logging
  • Production-ready deployment scripts

📋 Prerequisites

  • Python 3.10+
  • Node.js 18+
  • PostgreSQL 14+
  • Git

🛠️ Installation & Setup

1. Clone and Navigate to Project

cd university-platform

2. Backend Setup

cd backend

# Create virtual environment
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Create .env file from example
cp .env.example .env

# Configure database in .env
# Update: DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, DB_PORT

# Create uploads directory
mkdir uploads logs

# Run migrations
python manage.py migrate

# Create superuser
python manage.py createsuperuser

# Start development server
python manage.py runserver

Backend API will be available at: http://localhost:8000/api/v1 Django Admin: http://localhost:8000/admin API Documentation: http://localhost:8000/api/docs/

3. Frontend Setup

cd frontend

# Install dependencies
npm install

# Create .env.local file
cp .env.local.example .env.local

# Start development server
npm run dev

Frontend will be available at: http://localhost:3000

📁 Project Structure

university-admissions-platform/
├── backend/              # Django REST API
│   ├── apps/
│   │   ├── auth/         # Authentication & authorization
│   │   ├── university/   # Universities & programs
│   │   ├── application/  # Student applications
│   │   ├── content/      # CMS & pages
│   │   ├── blog/         # Blog posts
│   │   └── notifications/# Notifications & audit logs
│   ├── config/           # Django configuration
│   ├── core/             # Utilities, middleware, exceptions
│   └── requirements.txt
│
├── frontend/             # Next.js frontend app
│   ├── src/
│   │   ├── app/          # Next.js app directory
│   │   ├── components/   # React components
│   │   ├── hooks/        # Custom React hooks
│   │   ├── lib/          # API client, store, utilities
│   │   ├── types/        # TypeScript type definitions
│   │   └── styles/       # CSS & Tailwind config
│   ├── package.json
│   └── next.config.js
│
├── scripts/              # Deployment & maintenance scripts
├── docker-compose.yml    # Local development setup
└── README.md

🔐 Security Considerations

  • All passwords are hashed using Django's default hasher
  • JWT tokens with expiry and refresh rotation
  • CORS configured for frontend domain only
  • CSRF/XSS/SQL injection protections enabled
  • File upload validation (type, size, custom checks)
  • Secure file storage with hashed filenames
  • Audit logging for all admin actions
  • Environment variables for sensitive data

🌍 Multilingual Support

  • Languages: English (en) & Arabic (ar)
  • RTL Support: Automatic RTL layout for Arabic
  • Content: All database fields support both languages ({field}_en and {field}_ar)
  • Frontend: Language switching via UI, persisted in localStorage
  • Backend: Multilingual content served via API

📊 Database Schema

Major tables:

  • User, UserProfile, Role, Permission - Authentication & authorization
  • University, Program, ProgramRequiredDocument - Academic information
  • Application, Document, DocumentReview - Admissions workflow
  • Page, Banner, FAQ, Testimonial, SiteSettings - Content management
  • BlogPost - Blog articles
  • ContactInquiry, Notification, AuditLog - Notifications & logging

See Database Schema Plan for detailed structure.

🚀 Deployment

Email Configuration

Update .env with email settings:

EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password

Production Deployment

See Deployment Guide for:

  • VPS setup and configuration
  • Nginx reverse proxy setup
  • SSL/HTTPS configuration
  • Database backup strategy
  • Monitoring and logging

📚 API Documentation

Interactive API documentation available at:

  • Swagger UI: http://localhost:8000/api/docs/
  • ReDoc: http://localhost:8000/api/redoc/

🧪 Testing

# Backend tests
cd backend
pytest

# Frontend tests
cd frontend
npm run test

🤝 Contributing

  1. Create a feature branch (git checkout -b feature/amazing-feature)
  2. Commit your changes (git commit -m 'Add amazing feature')
  3. Push to the branch (git push origin feature/amazing-feature)
  4. Open a Pull Request

🛣️ Roadmap

Phase 1 (Complete)

  • Core authentication and authorization
  • University and program management
  • Student applications and document upload
  • Admin dashboard basics
  • Multilingual support

Phase 2 (Planned)

  • Page builder for homepage customization
  • Advanced blog system with categories
  • SMS/WhatsApp notifications
  • Live chat support
  • Advanced analytics and reporting
  • Mobile app (React Native)

📝 License

This project is confidential and proprietary.

📞 Support

For issues, questions, or feature requests, please contact the development team.


Last Updated: April 2026 Version: 0.1.0 (MVP)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages