CEKA (Civic Education Kenya App) is a community-led open-source platform built to bridge the civic knowledge gap and empower Kenyan citizens with accessible, accurate, and engaging civic education.
CEKA is a civic tech project built for the people, by the people. In a democracy, informed citizens are empowered citizens. We aim to:
- Bridge Knowledge Gaps - Make civic education accessible, engaging, and easy to understand
- Promote Transparency - Provide clear, verified information about governance and civic processes
- Inspire Action - Connect citizens with tools and opportunities for meaningful civic participation
- Foster Community - Create spaces for constructive civic dialogue and collaboration
- Enable Global Impact - Serve as a template for civic education initiatives worldwide
- π Legislative Tracker - Follow bills, laws, and legislative processes with AI-powered summaries
- π Resource Hub - Access civic education materials, articles, and interactive content
- π€ Community Portal - Engage in discussions and connect with like-minded citizens
- π Interactive Learning - Take quizzes and track your civic knowledge progress
- π Multilingual Support - Available in English and Swahili
- π± Offline Access - Download resources for use without internet connectivity
- π Anonymous Contributions - Submit legislative insights and resources for community benefit
- Node.js (v18 or higher)
- npm or yarn
- Git
git clone https://github.com/CivicEdKenyaApp/CEKA.git
cd CEKAnpm installCopy the example environment file and add your configuration:
cp .env.example .envUpdate .env with your credentials:
# Supabase Configuration
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# OpenAI API (for AI features)
VITE_OPENAI_API_KEY=your_openai_api_key
# MongoDB Connection
MONGODB_URI=your_mongodb_connection_stringπ Security Note: Never commit your
.envfile. It's already included in.gitignore.
npm run devYour app should be running at http://localhost:5173
npm run build- React 18 - Modern UI library with hooks and concurrent features
- Next.js - Full-stack React framework with SSR/SSG
- TypeScript - Type-safe JavaScript development
- Tailwind CSS - Utility-first CSS framework
- Vite - Fast build tool and development server
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database for flexible data storage
- Mongoose - MongoDB object modeling
- OpenAI API - Content summarization and categorization
- Supabase - Backend-as-a-Service for authentication and real-time features
- Vercel - Frontend hosting with edge functions
- MongoDB Atlas - Cloud database hosting
- GitHub Actions - CI/CD pipeline
We welcome all collaborators β developers, designers, educators, civic advocates, and citizens! CEKA thrives on community contributions.
-
Fork the repository
git fork https://github.com/CivicEdKenyaApp/CEKA.git
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow our coding standards
- Write clear commit messages
- Add tests for new features
-
Test your changes
npm run test npm run lint -
Submit a pull request
- Provide a clear description of your changes
- Reference any related issues
- Include screenshots for UI changes
- π§ Development - Frontend components, backend APIs, database optimization
- π¨ Design - UI/UX improvements, accessibility enhancements
- π Content - Civic education materials, translations (Swahili, other Kenyan languages)
- π§ͺ Testing - Manual testing, automated test writing
- π Documentation - API docs, user guides, contribution guidelines
- π Localization - Translation and cultural adaptation
- Code of Conduct: Be respectful, inclusive, and constructive
- Quality Standards: Write clean, well-documented, and tested code
- Civic Mission: Ensure contributions align with civic education goals
- Accessibility: Make features usable by people of all abilities
- Mobile-First: Prioritize mobile experience for Kenyan users
For detailed guidelines, see CONTRIBUTING.md.
CEKA is designed for easy deployment across multiple platforms:
- Vercel (Recommended)
- Netlify
- GitHub Pages
- MongoDB Atlas (Recommended)
- Supabase
See our Deployment Guide for detailed instructions.
CEKA/
βββ src/
β βββ components/ # Reusable UI components
β βββ pages/ # Main application pages
β βββ hooks/ # Custom React hooks
β βββ utils/ # Helper functions
β βββ services/ # API and external services
β βββ types/ # TypeScript type definitions
βββ server/
β βββ routes/ # API endpoints
β βββ models/ # Database models
β βββ middleware/ # Express middleware
β βββ services/ # Server-side services
βββ public/ # Static assets
βββ docs/ # Documentation
βββ tests/ # Test files
CEKA takes user privacy and security seriously:
- π Secure Authentication - JWT-based authentication with secure password hashing
- π‘οΈ Data Protection - User data is encrypted and stored securely
- π€ Anonymous Contributions - Users can contribute without revealing identity
- π Content Moderation - AI-powered moderation with human oversight
- π Privacy-First Analytics - No personal data tracking or sharing
For security issues, please email: [email protected]
- π Documentation: docs.ceka.app
- π¬ Discussions: GitHub Discussions
- π Bug Reports: GitHub Issues
- π§ Email: [email protected]
- π± Instagram: @civiceducationke
- π¦ Twitter: @CEKAApp
- πΌ LinkedIn: CEKA Project
CEKA is entirely community-funded. Your support helps us:
- Maintain servers and infrastructure
- Develop new features
- Create educational content
- Support community events
β Buy Me A Coffee | π GitHub Sponsors
Every contribution, no matter how small, makes a difference! π
This project is licensed under the MIT License - see the LICENSE file for details.
What this means:
- β Commercial Use - Use CEKA in commercial projects
- β Modification - Modify and adapt the code
- β Distribution - Share and redistribute freely
- β Private Use - Use for private/internal projects
- β Patent Grant - Protection from patent claims
Requirements:
- π License Notice - Include the MIT license in distributions
- π Copyright Notice - Credit the original authors
Educational content is licensed under Creative Commons CC BY-SA 4.0
"CEKA" and the CEKA logo are trademarks of the CEKA Project. See TRADEMARK.md for usage guidelines.
- Basic legislative tracker
- Resource hub with offline access
- User authentication
- Mobile-responsive design
- AI-powered content summarization
- Anonymous contribution processing
- Personalized content recommendations
- Automated content categorization
- Discussion forums
- Petition and campaign tools
- Volunteer opportunity matching
- Event management system
- Multi-country adaptation
- Advanced analytics dashboard
- Government partnership integrations
- Educational institution partnerships
See our detailed roadmap for specific milestones and progress.
CEKA exists thanks to the contributions of:
- π₯ Contributors - Developers, designers, and civic advocates who build CEKA
- ποΈ Civic Organizations - Partners who provide expertise and guidance
- π Educational Institutions - Schools and universities that use and improve CEKA
- π° Supporters - Individuals and organizations that fund development
- π°πͺ Kenyan Citizens - The community that CEKA serves and learns from
- Open source communities that inspire civic technology
- Democracy and transparency advocates worldwide
- The next generation of Kenyan civic leaders
Since launch, CEKA has:
- π X,XXX Active Users across Kenya
- π XXX Civic Resources in our database
- ποΈ XXX Bills Tracked in our legislative tracker
- π€ XXX Community Contributions from citizens
- π XX Countries exploring CEKA adaptation
Updated monthly - see impact dashboard for real-time metrics.
Built with β€οΈ for Kenya and democracy worldwide
π Star this repo | π΄ Fork for your country | π§ Get in touch
"The best way to predict the future is to create it." - Peter Drucker