Welcome Contributors!
Thank you for your interest in contributing to Dzaleka Online Services! This platform serves Dzaleka Refugee Camp by providing information about services, events, news, and resources. Every contribution helps strengthen our community.Dzaleka Online Services is built with Astro, Tailwind CSS, and deployed on Netlify. We welcome contributions from developers of all skill levels.
Ways to Contribute
There are many ways to contribute to this project:Code Contributions
Fix bugs, add features, or improve performance
Documentation
Improve guides, fix typos, or add examples
Content
Add or update service listings, events, or resources
Design
Enhance UI/UX or create visual assets
Development Setup
Prerequisites
Before you begin, ensure you have the following installed:- Node.js (v18 or higher)
- npm or yarn
- Git
- A code editor (VS Code recommended)
Getting Started
Start Development Server
Launch the local development server:The site will be available at
http://localhost:4321Project Structure
Understanding the codebase structure will help you navigate and contribute effectively:Content Collections
The platform uses Astro’s content collections for managing structured data:services/- Community services and organizationsevents/- Community events and activitiesnews/- News articles and updatesstories/- Community stories and testimonialsresources/- Educational and support resourcesjobs/- Job opportunitiesmarketplace/- Marketplace listings
Code Style Guidelines
TypeScript
We use TypeScript with strict type checking enabled:Component Guidelines
Astro Components:CSS and Styling
We use Tailwind CSS for styling. Follow these conventions:File Naming Conventions
- Components:
PascalCase.astroorPascalCase.tsx - Pages:
kebab-case.astro - Utilities:
camelCase.ts - Content:
kebab-case.mdorkebab-case.mdx
Pull Request Process
Ensure Quality
Before submitting, verify:
- Code builds without errors:
npm run build - TypeScript types are correct
- No console errors or warnings
- Responsive design works on mobile and desktop
Commit Your Changes
Write clear, descriptive commit messages:Commit message format:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting)refactor:Code refactoringperf:Performance improvementstest:Adding tests
Create Pull Request
- Go to the original repository
- Click “New Pull Request”
- Select your branch
- Fill out the PR template with:
- Clear description of changes
- Related issue numbers
- Screenshots (if UI changes)
- Testing steps
Testing Requirements
Manual Testing
Before submitting a PR, manually test:Testing Checklist
Testing Checklist
- Build completes without errors
- Pages load correctly
- Links work as expected
- Forms submit properly
- Images load and display correctly
- Responsive design works (mobile, tablet, desktop)
- Browser compatibility (Chrome, Firefox, Safari)
- Accessibility (keyboard navigation, screen readers)
Build Testing
Content Contributions
Adding or updating content is a valuable contribution!Adding a New Service
Content Guidelines
Good practices for content contributions:
- Write clear, concise descriptions
- Use proper grammar and spelling
- Include accurate contact information
- Add high-quality images (optimized for web)
- Respect privacy and get consent for photos
- Verify information before submitting
Getting Help
Need assistance? We’re here to help!Community Guidelines
All contributors are expected to follow our Code of Conduct. Be respectful, inclusive, and collaborative.First-time contributor? Look for issues labeled
good first issue to get started!Recognition
We value every contribution! Contributors are:- Listed in our GitHub repository
- Mentioned in release notes for significant contributions
- Part of building something meaningful for the Dzaleka community
Thank you for contributing to Dzaleka Online Services! Together, we’re building a platform that empowers and connects our community.