A multilingual event website commemorating Syrian Liberation Day
This is a responsive, multilingual web application built for the Syrian community in Turkey to commemorate Liberation Day (December 20, 2025). The platform serves as a digital hub for the event, providing comprehensive information about the commemoration activities, agenda, speakers, and registration details.
Purpose: To remember the past, celebrate freedom, and strengthen community connections through a professionally designed, accessible event platform.
Target Audience:
- Syrian community members in Turkey
- Event organizers and coordinators
- Developers maintaining or extending the platform
- 🌍 Multilingual Support: Full support for Arabic (with RTL layout), English, and Turkish
- 📱 Responsive Design: Mobile-first design approach using Tailwind CSS
- 📍 Event Information: Complete event details including date, time, and venue with Google Maps integration
- 🎯 Interactive Sections:
- Hero section with event branding
- Event agenda and schedule
- Speaker profiles
- Organizer information
- Registration call-to-action
- ⏰ Countdown Timer: Real-time countdown to the event date
- 🎨 Modern UI Components: Built with ShadCN UI library on Radix UI primitives
- ⚡ Performance Optimized: Vite build tool with fast hot module replacement
- React 18.3.1 - UI library
- TypeScript 5.8.3 - Type safety
- Vite 5.4.19 - Build tool and dev server
- Tailwind CSS 3.4.17 - Utility-first CSS framework
- ShadCN UI - Component library built on Radix UI primitives
- Lucide React - Icon library
- React Router DOM 6.30.1 - Client-side routing
- TanStack Query 5.83.0 - Data fetching and state management
- React Hook Form 7.61.1 - Form handling
- date-fns 3.6.0 - Date manipulation
- clsx & tailwind-merge - Class name merging
- zod 3.25.76 - Schema validation
- ESLint - Code quality and linting
- PostCSS & Autoprefixer - CSS processing
- Node.js (version 18 or higher recommended)
- npm or yarn package manager
- Git for version control
-
Clone the repository
git clone <repository-url> cd sc-dof
-
Install dependencies
npm install
-
Verify installation
npm run dev
Start the development server:
npm run devThe application will be available at http://localhost:8080
Development Features:
- Hot Module Replacement (HMR) for instant updates
- Fast refresh for React components
- TypeScript type checking
Testing Language Support: Use the language switcher in the navigation bar to test Arabic (RTL), English, and Turkish translations.
Production build:
npm run buildDevelopment build:
npm run build:devPreview production build:
npm run previewOutput: Built files are generated in the dist/ directory.
- Lint code:
npm run lint- Run ESLint to check code quality
sc-dof/
├── src/
│ ├── components/ # UI components organized by feature
│ │ ├── ui/ # Reusable ShadCN UI components
│ │ ├── HeroSection.tsx
│ │ ├── Navbar.tsx
│ │ ├── AgendaSection.tsx
│ │ ├── SpeakersSection.tsx
│ │ └── ...
│ ├── contexts/ # React contexts (LanguageContext for i18n)
│ ├── data/ # Event data model (eventData.ts)
│ ├── pages/ # Route-level components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions
│ ├── App.tsx # Root application component
│ └── main.tsx # Application entry point
├── public/ # Static assets
├── vite.config.ts # Vite configuration
├── tailwind.config.ts # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
Path Alias: The project uses @/* as an alias mapping to src/* for cleaner imports.
Example:
import { Button } from '@/components/ui/button'
import { eventData } from '@/data/eventData'Configured in vite.config.ts:
- Development server port: 8080
- Path aliases:
@→src/ - React plugin: SWC for fast refresh
- Component tagger: Development mode only
Configured in tailwind.config.ts:
- Custom theme extensions
- RTL support for Arabic language
- Custom color schemes matching Syrian flag colors
- Responsive breakpoints
Configured in tsconfig.json, tsconfig.app.json, and tsconfig.node.json:
- Strict mode enabled for type safety
- Path mapping for
@/*alias - Separate configurations for app and build tools
- Arabic (ar): Primary language with RTL (right-to-left) layout support
- English (en): Secondary language
- Turkish (tr): Tertiary language for local audience
Translation files: Located in src/contexts/LanguageContext.tsx
Translation key naming convention: section.element
Examples:
hero.title- Hero section titlenav.home- Navigation home linkagenda.title- Agenda section title
Language switching: Managed via React Context API
- Open
src/contexts/LanguageContext.tsx - Add the new key to all language objects (ar, en, tr)
- Use the
t()function in components:const { t } = useLanguage() return <h1>{t('section.newKey')}</h1>
- Ensure RTL layout compatibility for Arabic content
Event-specific content: src/data/eventData.ts
Contains:
- Venue information
- Agenda items
- Speaker details
- Organizer information
- Follow ESLint configuration for consistent code style
- Maintain TypeScript strict mode compliance
- Use PascalCase for component naming
- Write meaningful commit messages
- Use functional components with hooks
- Leverage ShadCN UI components from
ui/directory - Follow responsive-first design principles
- Implement proper TypeScript typing for props and state
✅ DO:
- Keep components focused on a single responsibility
- Use translation keys instead of hardcoded strings
- Test across all three languages (AR, EN, TR)
- Verify responsive behavior on multiple screen sizes
- Optimize images and assets for web performance
❌ DON'T:
- Hardcode text strings in components
- Skip TypeScript type definitions
- Ignore ESLint warnings
- Commit without testing language switching
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following the development guidelines
- Test across all languages and screen sizes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
All rights reserved. Made with ❤️ for the Syrian Community.
- Syrian Community in Turkey - Event organization and community support
- Leadership Academy for Sustainable Development - Partnership and collaboration
- All contributors and volunteers who made this event possible