Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/steve-ongera/kenya_kcse_portal
- Owner: steve-ongera
- Created: 2024-11-28T10:56:33.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-01-17T16:01:59.000Z (26 days ago)
- Last Synced: 2025-01-17T17:19:28.348Z (26 days ago)
- Topics: ajax, django, javascript, postgresql, python, reactjs
- Language: HTML
- Homepage:
- Size: 42.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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?