NISMA is a comprehensive child safety platform designed to protect children in Egypt through education, community awareness, and reporting tools. This project was developed for the EUI Hackathon 2025, focusing on creating innovative solutions for child safety and protection.
This application is built with Next.js, TypeScript, Tailwind CSS, and uses PostgreSQL for the database. It features a bilingual interface (English/Arabic) and responsive design for all devices.
-
Clone the Repository
git clone https://github.com/ABfathy/Hackathon_EUI.git cd Hackathon_EUI -
Install Dependencies
npm install -g pnpm # Skip if you already have pnpm installed pnpm install -
Setup the Database
# The .env file will be provided separately # Copy the provided .env file to the root directory
-
Initialize Prisma
npx prisma generate # Generates the Prisma client npx prisma migrate deploy # Applies migrations to the database
-
Run the Application
pnpm dev
-
Access the Platform
- Open your browser and visit:
http://localhost:3000
- Open your browser and visit:
- Bilingual Support: Toggle between English and Arabic using the language selector in the header
- Responsive Design: Test on different device sizes to see the responsive layout
- Interactive Maps: Explore the safety map feature with location-based alerts
- Support Forums: Review the community support features with moderated discussions
- Educational Resources: Browse age-appropriate educational content for both parents and children
- Reporting System: Test the incident reporting system with anonymous submission options
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS, Shadcn UI
- Backend: Next.js API Routes, Prisma ORM
- Database: PostgreSQL
- Authentication: NextAuth.js
- Maps Integration: Google Maps API
- Internationalization: Custom language context for English/Arabic support
- Safety Map: Interactive map showing safe zones and potential danger areas
- Community Forums: Moderated discussion spaces for parents and children
- Educational Resources: Age-appropriate learning materials
- Reporting System: Anonymous incident reporting with alerts
- Expert Counseling: Connection to child safety professionals
app/: Next.js App Router with page components and API routesapi/: Backend API endpoints for data operations[locale]/: Internationalized routes (en/ar)- Various feature directories (community, safety, etc.)
components/: Reusable UI components organized by featureprisma/: Database schema and migrationspublic/: Static assets and imagescontext/: React context providers for state managementlib/: Utility functions and shared logic
If you encounter any issues during setup:
-
Database Connection: Ensure the provided .env file is correctly placed in the root directory. The database connection should work with the credentials in the file.
-
Prisma Errors: If you encounter Prisma-related errors, try these steps:
npx prisma generate --force # Regenerate the Prisma client npx prisma migrate reset # Reset the database (will clear all data)
-
Dependency Issues: Run
pnpm install --forceto ensure all dependencies are properly installed. -
Port Conflicts: If port 3000 is already in use, the application will automatically try to use the next available port.
-
Browser Compatibility: The application works best in Chrome, Firefox, or Edge.
Child safety in Egypt faces several challenges, including limited awareness, insufficient reporting mechanisms, and a lack of age-appropriate educational resources. NISMA addresses these challenges by providing a comprehensive platform that connects parents, children, educators, and authorities in a unified ecosystem.
-
Culturally Relevant: Designed specifically for the Egyptian context with full Arabic language support and localized content
-
Age-Appropriate Design: Different interfaces and content for parents and children of various age groups
-
Community-Driven: Forums and community features that encourage knowledge sharing and support
-
Real-Time Alerts: Location-based safety alerts and incident reporting with verification mechanisms
-
Educational Focus: Interactive learning materials that teach safety concepts in an engaging way
- Awareness Building: Increases community awareness about child safety issues
- Prevention: Provides tools and knowledge to prevent incidents before they occur
- Support Network: Creates a support system for families dealing with safety concerns
- Data Collection: Generates valuable data for authorities to identify trends and high-risk areas
- Node.js v16 or higher
- pnpm (used instead of npm/yarn)
- Use only
pnpmto install dependencies. - The
pnpm-lock.yamlfile ensures consistent installs. - Do not commit
.envfiles to version control.