This repository contains the official codebase for the AMPATH Informatics Website, aimed at sharing content, workflows, training videos, and documentation related to AMPATH's EMR and health informatics initiatives.
ampath-informatics-website/
├── backend/ # Hapi.js backend server
│ ├── src/
│ │ ├── config/ # Environment configs, DB setup
│ │ ├── routes/ # Route definitions
│ │ ├── controllers/ # Request handlers
│ │ ├── services/ # Business logic
│ │ ├── models/ # DB models (if ORM used)
│ │ └── index.js # Hapi server entry point
│ └── package.json
│
├── client/ # Vite + React frontend with TailwindCSS
│ ├── src/
│ │ ├── assets/ # Static assets like images
│ │ ├── components/# Reusable UI components
│ │ ├── pages/ # Pages/views
│ │ ├── routes/ # Frontend routing
│ │ └── main.jsx # React entry point
│ └── package.json
│
└── README.md # Project instructions
To begin development:
- Go to the AMPATH GitHub repository
- Click on the Fork button (top right)
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/ampath-informatics-website.git
cd ampath-informatics-website
Use meaningful names for feature branches.
git checkout -b feat/<feature-name>
Examples:
feat/admin-auth
fix/video-embed-bug
chore/docs-update
- Node.js >= 18
- MySQL >= 8
- Git
cd backend
cp .env.example .env # Update database credentials in .env
npm install
npm run dev
Create a new MySQL database and configure .env
:
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=password
DB_NAME=ampath_informatics
⚠️ DB schema/migrations will be added later via Sequelize or SQL scripts.
cd client
npm install
npm run dev
- Fork and clone the repo
- Create a new branch
- Commit frequently with meaningful messages
- Push to your fork
- Open a Pull Request to
main
branch - PRs will be reviewed and merged after approval
Use Conventional Commits:
feat: add admin dashboard
fix: correct bug in video modal
docs: update readme
The site will have an admin dashboard to upload/update content (e.g., images, document links). This requires:
- Authentication (via session or JWT)
- Content management endpoints in backend
- Protected frontend routes (e.g.,
/admin
)
- Images may be uploaded via backend to a designated folder or cloud storage (e.g., Cloudinary)
- Training videos will be embedded from YouTube
- Documents/PDFs can be stored either in the repo or in a content folder via admin UI
For onboarding issues or technical questions, please reach out to US.