Skip to content

Latest commit

Β 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ChangeMakers - Community Empowerment Platform

ChangeMakers Logo

A modern, responsive website for a non-profit organization dedicated to sustainable community development, education, and climate action initiatives. Built with performance optimization and user experience at its core.

Table of Contents

Description

ChangeMakers is a non-profit organization website focused on empowering communities through:

  • Sustainable development initiatives
  • Education programs
  • Healthcare access
  • Climate action projects
  • Volunteer coordination

The website features dynamic content presentation, donor engagement tools, and real impact statistics.

Features

Modern Design & UX

  • Responsive Bootstrap 5.3.3 layout with mobile-first design
  • Smooth animations with optimized animate.css integration
  • Cross-device compatibility (phones, tablets, desktops)
  • Streamlined navigation with intuitive user flow
  • Fast loading optimized assets and lazy loading

Enhanced Donation System

  • Interactive donation modal with real-time impact preview
  • Multiple payment options (PayPal, Cards, Apple Pay, Google Pay, M-Pesa)
  • Recurring donation support (one-time, monthly, yearly)
  • Dynamic impact calculator showing donation effects
  • Smart preset amounts with custom input option

Dynamic Content & Analytics

  • Animated impact counters with smooth RequestAnimationFrame
  • Interactive testimonials grid replacing traditional carousel
  • Intersection Observer for performance-optimized animations
  • Responsive testimonial layout (hero, regular, and mini cards)

Community Engagement

  • Volunteer registration system with form validation
  • Success stories showcase with 6+ real testimonials
  • Global impact visualization across 25+ countries
  • Social media integration with accessibility features

Performance & Accessibility

  • Optimized JavaScript with class-based architecture
  • Efficient CSS with consolidated variables and utilities
  • WCAG compliant with proper ARIA labels
  • Secure forms with client-side validation
  • SEO optimized with proper meta tags and structure

Recent Updates

Navigation Optimization (Latest)

  • Streamlined menu structure - Eliminated redundant dropdown items
  • Direct action flow - Simplified user journey from discovery to donation
  • Mobile-optimized - Better responsive navigation experience

Testimonials Section Redesign

  • Grid-based layout - Replaced carousel with modern card grid
  • Enhanced visual hierarchy - Hero card, regular cards, and mini cards
  • Improved animations - Smooth fade-in effects with persistent visibility
  • Better storytelling - Impact stats bar and call-to-action integration

JavaScript Architecture Overhaul

  • Class-based structure - ChangeMakersAnimations and DonationModal classes
  • Performance optimization - RequestAnimationFrame for smooth counters
  • Unified observers - Single IntersectionObserver system
  • Memory management - Proper cleanup and element caching
  • 50% code reduction - Eliminated redundancies and improved maintainability

CSS Framework Optimization

  • CSS Variables system - Centralized color, spacing, and effect management
  • Utility classes - Reusable hover effects and transitions
  • Consolidated rules - Eliminated duplicate styles and selectors
  • Better organization - Logical grouping and consistent naming

Enhanced Donation Experience

  • Real-time impact preview - Shows exactly what each donation amount achieves
  • Smart payment flow - Improved UX with better state management
  • Success notifications - Toast-style feedback system
  • Form validation - Client-side validation with error handling

Installation

  1. Clone repository:
git clone https://github.com/Mayen007/ChangeMakers
  1. Open in browser:
cd ChangeMakers && open index.html

Dependencies (CDN-hosted):

  • Bootstrap 5.3.3
  • Bootstrap Icons 1.11.3
  • animate.css 4.1.1

M-Pesa Setup

Donations use Safaricom Daraja STK Push. The browser calls the local Node server, while Daraja credentials remain in environment variables.

  1. Copy .env.example to .env and fill in the Daraja sandbox credentials.
  2. Set MPESA_CALLBACK_URL to a publicly reachable HTTPS URL ending in /api/mpesa/callback.
  3. Start the site with:
npm start

Open http://localhost:3000. The callback URL cannot be localhost; use a deployed HTTPS URL or a development tunnel when testing payment callbacks.

Project Structure

ChangeMakers/
β”œβ”€β”€ index.html                 # Main HTML file with semantic structure
β”œβ”€β”€ server.js                  # Application composition root
β”œβ”€β”€ src/                       # Separated backend modules
β”‚   β”œβ”€β”€ config.js              # Environment and runtime configuration
β”‚   β”œβ”€β”€ mpesa/                 # Daraja API client
β”‚   β”œβ”€β”€ donations/             # Donation rules and transaction storage
β”‚   └── http/                  # Request parsing, routes, and static files
β”œβ”€β”€ LICENSE                    # MIT License
β”œβ”€β”€ README.md                  # Project documentation
β”œβ”€β”€ .env.example               # M-Pesa configuration template
└── static/
    β”œβ”€β”€ styles.css            # Optimized CSS with variables and utilities
    β”œβ”€β”€ scripts.js            # Class-based JavaScript architecture
    └── img/                  # Image assets
        β”œβ”€β”€ changemakers-logo.png
        β”œβ”€β”€ volunteers.jpg
        β”œβ”€β”€ children.jpeg     # Hero background
        β”œβ”€β”€ education.jpg
        β”œβ”€β”€ healthcare.jpg
        β”œβ”€β”€ sustainability.jpg
        β”œβ”€β”€ education-graphic.jpg
        β”œβ”€β”€ michphoto.jpeg
        β”œβ”€β”€ payment-img/      # Payment method icons
        β”‚   β”œβ”€β”€ credit-card.svg
        β”‚   β”œβ”€β”€ icons8-apple-pay.svg
        β”‚   β”œβ”€β”€ icons8-google-pay.svg
        β”‚   β”œβ”€β”€ icons8-paypal-logo.svg
        β”‚   └── mpesa-logo.png
        └── testimonial-images/  # User profile images
            β”œβ”€β”€ ahmed.jpg
            β”œβ”€β”€ john.jpg
            β”œβ”€β”€ khanh-Bui.jpg
            β”œβ”€β”€ Lopez.jpg
            β”œβ”€β”€ lucia.jpeg
            └── sophia.jpg

File Organization

  • index.html - Single-page application with semantic HTML5
  • static/styles.css - Modular CSS with CSS custom properties
  • static/scripts.js - ES6+ class-based JavaScript modules
  • server.js - Thin entrypoint that composes backend services
  • src/ - Backend modules separated by responsibility
  • static/img/ - Optimized images with descriptive naming

Performance Optimizations

JavaScript Performance

  • Class-based architecture - Better memory management and code organization
  • RequestAnimationFrame - Smooth 60fps counter animations
  • Throttled events - Optimized scroll event handling (100ms throttle)
  • Element caching - Reduced DOM queries by 70%
  • Intersection Observer - Efficient viewport-based animations
  • Event delegation - Reduced memory footprint for dynamic content

CSS Optimizations

  • CSS Custom Properties - Centralized theming system
  • Utility classes - Reusable components reducing code duplication
  • Consolidated selectors - Eliminated redundant rules
  • Strategic will-change - Hardware acceleration for animations
  • Responsive design - Mobile-first approach with optimized breakpoints

Asset Optimization

  • Lazy loading - Images load only when needed
  • Optimized images - Compressed assets with proper formats
  • CDN delivery - Bootstrap and external libraries via CDN
  • Minimal HTTP requests - Consolidated stylesheets and scripts

Performance Metrics

  • Lighthouse Score: 95+ performance rating
  • First Contentful Paint: < 1.5s
  • Largest Contentful Paint: < 2.5s
  • Cumulative Layout Shift: < 0.1
  • Mobile Performance: Optimized for 3G networks

Technologies Used

Frontend Framework

HTML5 Semantic HTML5 - Accessible markup structure
Bootstrap Bootstrap 5.3.3 - Responsive framework
CSS3 Modern CSS - Custom properties, Grid, Flexbox

JavaScript & Animation

JavaScript ES6+ Classes - Modern JavaScript architecture
Animate.css Animate.css 4.1.1 - CSS animation library
Intersection Observer API - Performance-optimized animations
RequestAnimationFrame - Smooth 60fps counter animations

πŸ”§ Development Tools

Bootstrap Icons Bootstrap Icons 1.11.3 - Consistent iconography
CSS Custom Properties - Centralized theming system
CDN Delivery - Fast asset loading

πŸ“± Browser APIs

  • IntersectionObserver - Viewport-based animation triggers
  • RequestAnimationFrame - Smooth animation performance
  • CSS Grid & Flexbox - Modern layout systems
  • CSS Transforms & Transitions - Hardware-accelerated animations

Browser Compatibility

Fully Supported

  • Chrome 88+ - Full feature support
  • Firefox 85+ - Complete compatibility
  • Safari 14+ - iOS and macOS support
  • Edge 88+ - Chromium-based versions

Graceful Degradation

  • IE 11 - Basic functionality (no animations)
  • Older browsers - Fallback to standard Bootstrap components
  • No JavaScript - Content remains accessible

πŸ“± Mobile Testing

  • iOS Safari 14+ βœ…
  • Chrome Mobile 88+ βœ…
  • Samsung Internet 13+ βœ…
  • Firefox Mobile 85+ βœ…

Contributing

We welcome contributions to improve ChangeMakers! Here's how you can help:

Getting Started

  1. Fork the repository
git clone https://github.com/YourUsername/ChangeMakers.git
  1. Create a feature branch
git checkout -b feature/amazing-feature
  1. Make your changes

    • Follow existing code style and conventions
    • Test across different browsers and devices
    • Ensure accessibility compliance
  2. Commit your changes

git commit -m 'feat: add amazing feature'
  1. Push and create Pull Request
git push origin feature/amazing-feature

Contribution Guidelines

Code Style:

  • Use semantic HTML5 elements
  • Follow BEM naming for CSS classes
  • Use ES6+ JavaScript features
  • Maintain responsive design principles

Testing:

  • Test on mobile devices (iOS/Android)
  • Verify accessibility with screen readers
  • Check performance with Lighthouse
  • Validate HTML with W3C validator

Documentation:

  • Update README for new features
  • Add JSDoc comments for JavaScript functions
  • Include accessibility notes for UI changes

Issue Reporting

Found a bug? Please create an issue with:

  • Browser and version
  • Steps to reproduce
  • Expected vs actual behavior
  • Screenshots (if applicable)

Issue Tracking: GitHub Issues

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements

Open Source Libraries

Design Inspiration

  • Material Design - Google's design language principles
  • Modern non-profit websites - Best practices in donor engagement
  • Accessibility guidelines - WCAG 2.1 AA compliance standards

Assets & Media

  • Unsplash - High-quality photography for hero sections
  • Community photos - Real testimonial images with permission
  • Custom illustrations - Original graphics for impact visualization

πŸ”§ Development Tools

  • VS Code - Primary development environment
  • Chrome DevTools - Performance optimization and debugging
  • Lighthouse - Performance and accessibility auditing

Contact

ChangeMakers Organization

General Inquiries: contact@changemakers.org
Phone: +254 345 678 90
Location: 123 Impact Street, Nairobi, Kenya

Development Team

Lead Developer: Mayen007
Technical Contact: alonerpunk@gmail.com

Project Links

Live Demo - Experience the full website
Project Board - Track development progress
Documentation Wiki - Detailed technical documentation

Get Involved

Donate - Support our mission
Volunteer - Join our team
Partner With Us - Corporate collaboration opportunities


Project Status

Website Status
Powered by Bootstrap
W3C Validated
License: MIT

About

A responsive non-profit website for community empowerment initiatives.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages