https://github.com/ohcnetwork/deployments_registry
All Care Deployments
https://github.com/ohcnetwork/deployments_registry
Last synced: 3 months ago
JSON representation
All Care Deployments
- Host: GitHub
- URL: https://github.com/ohcnetwork/deployments_registry
- Owner: ohcnetwork
- License: mit
- Created: 2025-11-21T13:59:03.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-12-04T08:43:14.000Z (6 months ago)
- Last Synced: 2025-12-07T16:17:34.455Z (6 months ago)
- Language: TypeScript
- Homepage: https://deployments.ohc.network
- Size: 612 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Deployments Registry
A global, open-source registry that visualizes deployments on an interactive map. Built with Next.js, MapLibre GL JS, and shadcn/ui.
## Features
- πΊοΈ **Interactive Map**: Powered by MapLibre GL JS with Maptiler tiles
- π **Dark Mode**: Seamless theme switching with next-themes
- π **Search & Filter**: Find deployments by name or filter by program type
- π **Smart Clustering**: Automatic marker clustering using supercluster
- π± **Responsive Design**: Works seamlessly on desktop, tablet, and mobile
- π¨ **White-labelable**: Configure via environment variables
- π **Static Export**: Deploy anywhere (Vercel, Netlify, GitHub Pages, etc.)
## Getting Started
### Prerequisites
- Node.js 18+ and pnpm
- Maptiler API key (free tier: https://cloud.maptiler.com/)
### Installation
1. Clone the repository:
```bash
git clone https://github.com/ohcnetwork/deployments_registry.git
cd deployments_registry
```
2. Install dependencies:
```bash
pnpm install
```
3. Configure environment variables:
```bash
cp .env.example .env.local
```
Edit `.env.local` and add your Maptiler API key and white-label configuration:
```env
NEXT_PUBLIC_MAPTILER_API_KEY=your_maptiler_api_key_here
NEXT_PUBLIC_APP_NAME=Your Deployments Registry
NEXT_PUBLIC_APP_DESCRIPTION=Your description
NEXT_PUBLIC_ORGANIZATION_NAME=Your Organization
NEXT_PUBLIC_ORGANIZATION_URL=https://yoursite.com
```
4. Run the development server:
```bash
pnpm dev
```
Open [http://localhost:3000](http://localhost:3000) to see the map.
### Build for Production
```bash
pnpm build
```
The static files will be generated in the `out/` directory and can be deployed to any static hosting service.
## Data Structure
Deployment data is stored in `public/deployments.json`. Each deployment has:
```typescript
{
"id": "unique-id",
"name": "Deployment Name",
"description": "Description",
"program": "10bedicu" | "keralacare" | "palliative-ngo" | "hmis",
"location": {
"latitude": 0.0,
"longitude": 0.0,
"address": {
"city": "City",
"country": "Country"
}
},
"dateDeployed": "2024-01-01", // Optional
"website": "https://...", // Optional
"status": "active" // Optional
}
```
## White-labeling
The application can be white-labeled through environment variables:
- `NEXT_PUBLIC_APP_NAME`: Application title
- `NEXT_PUBLIC_APP_DESCRIPTION`: Meta description for SEO
- `NEXT_PUBLIC_ORGANIZATION_NAME`: Organization name shown in header
- `NEXT_PUBLIC_ORGANIZATION_URL`: Link to organization website
## Tech Stack
- **Framework**: Next.js 16 with App Router
- **Mapping**: MapLibre GL JS + Maptiler
- **UI**: shadcn/ui + Tailwind CSS
- **Theme**: next-themes
- **Clustering**: supercluster
- **Language**: TypeScript
## Project Structure
```
deployments_registry/
βββ app/ # Next.js app router
β βββ layout.tsx # Root layout with theme provider
β βββ page.tsx # Main page
β βββ globals.css # Global styles
βββ components/
β βββ map/ # Map-related components
β β βββ deployment-map.tsx
β β βββ map-popup.tsx
β βββ filters/ # Filter components
β β βββ deployment-filters.tsx
β βββ ui/ # shadcn components
β βββ theme-provider.tsx
βββ lib/
β βββ config.ts # Environment config
β βββ data.ts # Data loading utilities
β βββ map-utils.ts # Map helper functions
β βββ utils.ts # General utilities
βββ types/
β βββ deployment.ts # TypeScript types
βββ public/
β βββ deployments.json # Deployment data
βββ next.config.ts # Next.js configuration
```
## License
MIT License - see [LICENSE](LICENSE) file
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
---
Built with β€οΈ by [Open Healthcare Network](https://ohc.network)