UniBridge provides a streamlined, one-application solution for 100+ universities, integrated scholarship search, and comprehensive progress tracking.
UniBridge Ghana eliminates the traditional barriers of university applications by providing a centralized platform where students complete one comprehensive application and apply to multiple institutions simultaneously. The platform serves as Ghanaβs equivalent to the Common Application used in the United States, specifically designed for the Ghanaian educational ecosystem.
π Try the live demo: https://tmarhguy.github.io/unibridgeGhana/
The GitHub Pages version showcases the complete user interface with mock data, demonstrating the platformβs potential for revolutionizing university admissions in Ghana.
Previously, Ghanaian students faced:
UniBridge provides:
Feature | Description | Status |
---|---|---|
Centralized Applications | Single application form for multiple universities | β Complete |
Multi-Institution Support | Support for 100+ public and private universities | β Complete |
Direct Admissions | Fast-track admissions for qualified candidates | β Complete |
Scholarship Integration | Comprehensive financial aid search and application | β Complete |
Progress Tracking | Real-time application status and deadline monitoring | β Complete |
Document Security | End-to-end encryption for sensitive documents | β Complete |
Auto-save Functionality | Automatic form data preservation | β Complete |
Mobile Responsive | Full functionality across all devices | β Complete |
Landing page and student dashboard interface
Application tracking and streamlined admissions workflow
Financial aid discovery and comprehensive university analytics
π· Visual Documentation: For additional screenshots, mobile views, and admin interfaces, see docs/screenshots/
graph TD
A[Students & Universities] --> B[Next.js Frontend]
B --> C[API Gateway]
C --> D[FastAPI Backend]
D --> E[(PostgreSQL Database)]
D --> F[(Redis Cache)]
D --> G[(MinIO Storage)]
D --> H[Celery Workers]
I[Admin Portal] --> B
J[Mobile App] --> C
K[Payment Gateways] --> D
L[WASSCE API] --> D
M[Email Service] --> H
style B fill:#0066cc,color:#fff
style D fill:#009688,color:#fff
style E fill:#336791,color:#fff
style F fill:#dc382d,color:#fff
style G fill:#c72e29,color:#fff
βββ Next.js 14 (App Router)
βββ TypeScript (Type Safety)
βββ Tailwind CSS (Styling)
βββ React Query (State Management)
βββ React Hook Form + Zod (Form Validation)
βββ Radix UI (Accessible Components)
βββ PWA Support (Offline Capability)
βββ FastAPI (Python Web Framework)
βββ SQLAlchemy (ORM)
βββ PostgreSQL (Primary Database)
βββ Redis (Caching & Sessions)
βββ MinIO (Document Storage)
βββ Alembic (Database Migrations)
βββ Pydantic (Data Validation)
βββ Celery (Background Tasks)
βββ Docker (Containerization)
βββ Kubernetes (Orchestration)
βββ GitHub Actions (CI/CD)
βββ Nginx (Load Balancing)
βββ Let's Encrypt (SSL Certificates)
βββ Prometheus + Grafana (Monitoring)
-- Core Tables
βββ users (students, admins, university staff)
βββ universities (institution profiles and requirements)
βββ applications (application submissions and status)
βββ documents (secure file storage references)
βββ scholarships (financial aid opportunities)
βββ notifications (real-time messaging system)
βββ audit_logs (comprehensive activity tracking)
This project includes a GitHub Pages deployment configuration for showcasing the frontend interface. The static version is automatically deployed to https://tmarhguy.github.io/unibridgeGhana/ whenever changes are pushed to the main branch.
For testing the GitHub Pages version:
demo@example.com
)Before setting up UniBridge Ghana locally, ensure you have the following installed:
git clone https://github.com/tmarhguy/unibridgeGhana.git
cd unibridgeGhana
# Navigate to backend directory
cd backend
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your database and Redis configurations
# Run database migrations
alembic upgrade head
# Start the backend server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# Navigate to frontend directory (new terminal)
cd frontend
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your API endpoints
# Start the development server
npm run dev
# Create PostgreSQL database
createdb unibridge_ghana
# Set up Redis (if not using Docker)
redis-server
For a containerized setup:
# Clone and navigate to project
git clone https://github.com/tmarhguy/unibridgeGhana.git
cd unibridgeGhana
# Build and run with Docker Compose
docker-compose up --build
# Run database migrations
docker-compose exec backend alembic upgrade head
# Production environment variables
export DATABASE_URL="postgresql://user:password@localhost:5432/unibridge_prod"
export REDIS_URL="redis://localhost:6379"
export SECRET_KEY="your-production-secret-key"
export ENVIRONMENT="production"
# Frontend build
cd frontend
npm run build
npm start
# Backend deployment
cd backend
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
Account Creation
Navigate to /register
β Complete profile setup
β Verify email address
β Access dashboard
Application Process
Dashboard β Start New Application
β Complete Common Application sections:
- Personal Information
- Academic History (WASSCE/A-Level results)
- Extracurricular Activities
- Essays and Personal Statements
β Select target universities
β Submit application and payment
Progress Tracking
Dashboard β My Applications
β View real-time status updates
β Track deadlines and requirements
β Receive notifications for updates
// Typical student workflow
const applicationFlow = {
1: "Create account and verify email",
2: "Complete personal information section",
3: "Upload academic documents (WASSCE, transcripts)",
4: "Write essays and personal statements",
5: "Research and select target universities",
6: "Review application and submit",
7: "Pay application fees via Mobile Money/Bank",
8: "Track application status in real-time",
9: "Receive admission decisions",
10: "Accept offers and complete enrollment",
};
Institution Setup
Admin Portal β Institution Settings
β Configure admission requirements
β Set up custom application supplements
β Define evaluation criteria
Application Review
Admin Portal β Applications
β Filter and sort applications
β Review individual submissions
β Make admission decisions
β Send notifications to students
// Example API usage for external integrations
const api = {
baseURL: "https://api.unibridge.gh/v1",
// Get university list
async getUniversities() {
const response = await fetch(`${this.baseURL}/universities`);
return response.json();
},
// Submit application
async submitApplication(data) {
const response = await fetch(`${this.baseURL}/applications`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data),
});
return response.json();
},
};
Method | Endpoint | Description | Authentication |
---|---|---|---|
GET |
/api/v1/universities |
List all universities | Public |
POST |
/api/v1/applications |
Submit new application | Required |
GET |
/api/v1/applications/{id} |
Get application details | Required |
GET |
/api/v1/scholarships |
List available scholarships | Public |
POST |
/api/v1/documents |
Upload documents | Required |
# Get access token
curl -X POST "https://api.unibridge.gh/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "password"}'
# Use token in requests
curl -H "Authorization: Bearer <token>" \
"https://api.unibridge.gh/v1/applications"
We welcome contributions from the community. Please follow these guidelines:
Fork the Repository
git clone https://github.com/YOUR_USERNAME/unibridgeGhana.git
cd unibridgeGhana
git remote add upstream https://github.com/tmarhguy/unibridgeGhana.git
Create Feature Branch
git checkout -b feature/your-feature-name
Development Standards
Code Style
# Frontend linting
npm run lint
npm run format
# Backend formatting
black app/
isort app/
flake8 app/
Testing
# Frontend tests
npm run test
npm run test:e2e
# Backend tests
pytest tests/ -v
Submit Pull Request
When reporting issues, please include:
This project is licensed under the MIT License β see the LICENSE file for details.
Academic & Portfolio Project: This project was created for academic and portfolio purposes. While fully functional, it is not intended for production or official deployment without further review and development.
MIT License
Copyright (c) 2025 Tyrone Marhguy
Academic and portfolio project - not intended for production deployment.
UniBridge Ghana is designed specifically for the Ghanaian educational landscape, incorporating:
UniBridge Ghana - Connecting Students to Their Future
For support, contact us at support@unibridge.gh or visit our documentation.