Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/steve-ongera/kenya_kcse_portal

Kenyan national education council portal for results , ranking and analysis
https://github.com/steve-ongera/kenya_kcse_portal

ajax django javascript postgresql python reactjs

Last synced: 5 days ago
JSON representation

Kenyan national education council portal for results , ranking and analysis

Awesome Lists containing this project

README

        

# KCSE Portal

## Project Overview

KCSE Portal is a comprehensive web application designed to streamline the management of Kenya Certificate of Secondary Education (KCSE) examination processes. The portal provides functionalities for students, teachers, administrators, and education officials to manage exam-related activities efficiently.

## Table of Contents

- [Features](#features)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Project Structure](#project-structure)
- [Configuration](#configuration)
- [Running the Application](#running-the-application)
- [Database Setup](#database-setup)
- [Testing](#testing)
- [Deployment](#deployment)
- [Contributing](#contributing)
- [License](#license)

## Features

### Student Features
- User registration and profile management
- Exam registration
- View exam results
- Download result slip
- Track academic performance
- Exam fee payment integration

### Teacher Features
- Student performance tracking
- Exam paper management
- Student record management
- Conduct internal assessments
- Generate performance reports

### Administrator Features
- User management
- Exam scheduling
- Result processing
- School and student data management
- Generate comprehensive reports
- System configuration

### Exam Management Features
- Online exam registration
- Exam center allocation
- Admit card generation
- Result publication
- Performance analytics

## Prerequisites

Before you begin, ensure you have met the following requirements:

- Python 3.9+
- Django 4.2+
- PostgreSQL 13+
- pip (Python package manager)
- virtualenv
- Git

### Recommended System Requirements
- Processor: Intel Core i5 or equivalent
- RAM: 8GB+
- Storage: 20GB free disk space
- Operating System: Linux/macOS/Windows

## Installation

### 1. Clone the Repository
```bash
git clone https://github.com/steve-ongera/Kenya_KCSE_portal.git
cd kcse-portal
```

### 2. Create Virtual Environment
```bash
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```

### 3. Install Dependencies
```bash
pip install -r requirements.txt
```

### 4. Environment Configuration
Create a `.env` file in the project root with the following variables:
```env
SECRET_KEY=your_secret_key
DEBUG=True
DATABASE_URL=postgresql://username:password@localhost/kcseportal
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
[email protected]
EMAIL_HOST_PASSWORD=your_email_password
```

## Project Structure
```
kcse_portal/

├── manage.py
├── requirements.txt
├── .env

├── kcse_portal/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py

├── apps/
│ ├── authentication/
│ ├── students/
│ ├── teachers/
│ ├── exams/
│ ├── results/
│ └── admin/

├── templates/
│ ├── base.html
│ ├── authentication/
│ ├── students/
│ └── admin/

├── static/
│ ├── css/
│ ├── js/
│ └── images/

└── tests/
├── test_authentication.py
├── test_students.py
└── test_exams.py
```

## Configuration

### Database Configuration
1. Create PostgreSQL Database
```bash
createdb kcseportal
```

2. Run Migrations
```bash
python manage.py makemigrations
python manage.py migrate
```

### Creating Superuser
```bash
python manage.py createsuperuser
```

## Running the Application

### Development Server
```bash
python manage.py runserver
```
Access the application at `http://127.0.0.1:8000`

### Running Tests
```bash
python manage.py test
```

## Security Considerations
- Use strong, unique passwords
- Enable two-factor authentication
- Regularly update dependencies
- Use HTTPS in production
- Implement proper user role permissions

## Deployment

### Heroku Deployment
1. Create `Procfile`
2. Install `gunicorn`
3. Configure `settings.py` for production
4. Set environment variables
5. Push to Heroku

### Recommended Production Configurations
- Use Nginx as reverse proxy
- Implement SSL/TLS
- Use Gunicorn/uWSGI for production WSGI
- Set `DEBUG=False`
- Use environment-specific settings

## Contributing

### How to Contribute
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request

### Code Style
- Follow PEP 8 guidelines
- Use type hints
- Write comprehensive docstrings
- Maintain consistent code formatting

## License

This project is licensed under the MIT License. See the `LICENSE` file for details.

## Contact

Project Maintainer: Steve Ongera
Email: [email protected]
Project Link: https://github.com/steve-ongera/Kenya_KCSE_portal

## Acknowledgements
- Django Documentation
- Python Software Foundation
- All contributors and supporters
```

Would you like me to elaborate on any specific section of the README or explain any part of the project structure in more detail?