This project simulates a basic Health Information System where a doctor (system user) can:
- Create health programs (e.g., TB, Malaria, HIV, etc.)
- Register clients (patients)
- Enroll clients into one or multiple programs
- Search for registered clients
- View a client's profile and enrolled programs
- Expose client profiles through a simple REST API
Developed as part of the CEMA Software Engineering Internship Application Task.
The project was deployed to render: Deployed System Login Username: admin Password: admin Powerpoint Slides: View Slides Protype: Watch Here
- Project Structure
- Key Features
- Technology Stack
- Setup Instructions
- API Endpoints
- Prototype Demonstration
- Deployment
- Future Improvements
- Presentation and Demo
- Contact
The repository is organized as follows:
HealthInformationSystem/ # Main Django project folder
├── __init__.py
├── asgi.py
├── manage.py # Django management script
├── requirements.txt # Project dependencies
├── settings.py # Django project settings
├── urls.py # Project URL configurations
├── wsgi.py
├── vercel.json # For deployment
health/ # Main Django app for health system
├── __init__.py
├── admin.py # Django admin customization
├── apps.py
├── migrations/ # Database migration files
├── models.py # Database models (Program, Patient, Appointment)
├── static/ # Static assets (CSS, JS)
├── templates/ # HTML templates for views
├── tests.py # Unit tests (basic)
├── views.py # Core application logic
db.sqlite3 # SQLite database
staticfiles/ # Collected static files for deployment
docs/ # Documentation folder
├── Presentation.pptx # PowerPoint Presentation
├── Prototype_Demo_Video.mp4 # Prototype Demonstration Video
Procfile # For Render deployment
venv/ # Python virtual environment (not pushed to GitHub)
✅ Create health programs like HIV, TB, Malaria
✅ Register new clients into the system
✅ Enroll clients into one or more programs
✅ View client profiles with their enrolled programs
✅ Search for registered clients by name
✅ Expose client profile data via a simple public API
✅ Clean and documented code
✅ Project deployed publicly on Render
✅ Simple and intuitive frontend (HTML/CSS + minimal JavaScript)
- Backend Framework: Django (Python)
- Frontend: HTML, CSS, Bootstrap
- Database: SQLite (default Django setup)
- Deployment: Render
- API: Django REST framework (simple implementation)
🔹 To run the project locally:
- Clone the repository
git clone https://github.com/YOUR_USERNAME/HealthInformationSystem.git
cd HealthInformationSystem
- Create a virtual environment and activate it
python3 -m venv venv
source venv/bin/activate # For Linux/macOS
venv\Scripts\activate # For Windows
- Install the dependencies
pip install -r requirements.txt
- Run migrations
python manage.py makemigrations
python manage.py migrate
- Create a superuser (admin login)
python manage.py createsuperuser
- Start the development server
python manage.py runserver
- Access the app
- Visit
http://127.0.0.1:8000/
on your browser.
🔹 A simple API is exposed to retrieve client profiles.
Endpoint | Description |
---|---|
/api/clients/ |
Returns a list of all registered clients and their enrolled programs in JSON format |
Example Output:
[
{
"id": 1,
"name": "John Doe",
"programs": ["HIV Program", "Malaria Program"]
},
...
]
🔥 API-first Approach: The API is designed to be easily extendable for future systems integration.
You can view the working prototype demo through:
-
📽️ Prototype Demo Video:
Watch Here -
🖼️ PowerPoint Presentation:
View Slides
Both the presentation and the video are also available in the docs/
folder in the repository.
The project is deployed on Render for easy access.
Deployment steps:
- Pushed to GitHub.
- Connected GitHub repository to Render.
- Configured Procfile and vercel.json.
- Automatic deploy on
git push
.
- Add unit tests for all major models and views.
- Improve the API (pagination, authentication).
- Add detailed client histories and appointment scheduling.
- Implement security features (user authentication, access roles).
- Optimize database queries and indexes for large datasets.
- Deploy using a production-grade database like PostgreSQL.
Material | Link |
---|---|
PowerPoint Presentation | View Here |
Prototype Demonstration Video | View Here |
Developed by Lincoln Madaraka
- 📧 Email: madarakalincoln48@gmail.com
- 🌐 Portfolio: Lincoln Madaraka Portfolio