Logo Lanfrica

Ismael-Njihia/Kenya-info-api

Domain:

socioeconomicdigital infrastructure

Record type:

softwaretools
Creator:
Ism
Host:
The Kenyan County Info API provides fast, reliable data on Kenya’s counties, wards, and leaders. Built with Go and MongoDB Atlas, it delivers clean JSON responses for use in civic apps, dashboards, and research tools. It’s simple, scalable, and designed to promote open access to accurate public information. # Kenya Info API 🇰🇪 API: kenya-info-api.onrender.com A fast, reliable, and production-ready backend API providing structured data on Kenya's 47 counties, wards, and leaders. Built with Go and MongoDB Atlas, it delivers clean JSON responses optimized for civic apps, dashboards, and research tools. ## 🚀 Features - **Fast & Reliable**: Built with Go and Gin framework for high performance - **RESTful API**: Clean, intuitive endpoints following REST principles - **MongoDB Atlas**: Scalable NoSQL database for flexible data storage - **Swagger Documentation**: Interactive API documentation at `/swagger/index.html` - **Structured Logging**: Production-grade logging with Zap - **Docker Support**: Fully containerized for easy deployment - **CI/CD Pipeline**: Automated testing and deployment with GitHub Actions - **Pagination**: Efficient data retrieval with built-in pagination - **CORS Enabled**: Cross-origin resource sharing support - **Health Checks**: Monitor API status and uptime ## 📋 Table of Contents - Prerequisites - Installation - Configuration - Running the Application - API Documentation - Testing - Deployment - Project Structure ## 🛠️ Prerequisites - Go 1.21 or higher - MongoDB 7.0 or MongoDB Atlas account - Docker (optional, for containerized deployment) - Git ## 📦 Installation 1. **Clone the repository** ```bash git clone github.com cd Kenya-info-api ``` 2. **Install dependencies** ```bash go mod download ``` 3. **Set up environment variables** ```bash cp .env.example .env ``` Edit `.env` with your configuration: ```env PORT=8080 ENV=development MONGODB_URI=mongodb://localhost:27017 MONGODB_DATABASE=kenya_info MONGODB_TIMEOUT=10 LOG_LEVEL=info ``` ## ⚙️ Configuration The application uses environment variables for configuration: | Variable | Description | Default | |----------|-------------|---------| | `PORT` | Server port | `8080` | | `ENV` | Environment (development/production) | …

Licenses