A comprehensive Wildlife Safari Management System built specifically for Sri Lankan wildlife tourism. This full-stack MERN application provides an end-to-end solution for managing safari bookings, staff operations, wildlife conservation efforts, and customer interactions with trilingual support (English, Sinhala, Tamil).
Academic Project: This repository showcases a collaborative Y2S2 group project developed by a passionate team of five contributors, focused on wildlife conservation and modern web development practices.
- ๐ธ Screenshots
- ๐ Features
- ๐ ๏ธ Tech Stack
- ๐ Project Structure
- โ๏ธ Installation & Setup
- ๐ Getting Started
- ๐ API Documentation
- ๐ Multilingual Support
- ๏ฟฝ Security
- ๏ฟฝ๐ฅ Contributors
- ๐ License
- ๐ Support
Click to view legal pages
- ๐ Smart Booking System: Real-time availability and calendar integration
- ๐ฏ Package Management: Customizable safari packages with detailed itineraries and photo galleries
- ๐จ Custom Safari Requests: Personalized safari package creation based on customer preferences
- ๐ Fleet Management: Vehicle tracking, assignment, and maintenance scheduling
- ๐จโ๐ผ Staff Coordination: Driver and tour guide management with role-based dashboards
- โฐ Attendance Tracking: Comprehensive staff attendance monitoring and reporting
- ๐ณ Secure Payments: Stripe integration for bookings, donations, and photo purchases
- ๐ Analytics Dashboard: Comprehensive admin panel with booking trends and insights
- ๐ฐ Payroll System: Staff payment tracking and automated payroll management
- ๐ธ Wildlife Photo Marketplace:
- Direct photo sales with secure payment processing
- ๐ฏ Real-time Bidding System: Live auction platform for exclusive wildlife photography
- Automated bid scheduling with countdown timers
- Instant winner notifications and purchase reminders
- Secure photo delivery with time-limited download links (7-day expiry, 5 downloads max)
- Digital watermarking and copyright protection
- ๐ Contact Management: Structured customer inquiry and message handling system
- ๐ Admin Audit Trail: Comprehensive tracking of all administrative actions
- ๐ฃ๏ธ Trilingual Chatbot: Intelligent AI assistant with context awareness in English, Sinhala, and Tamil
- ๐ค๏ธ Weather Integration: Real-time weather data for optimal safari planning
- ๐ Smart Notifications: Multi-channel automated notifications system
- Bidding updates and winner alerts
- Photo delivery confirmations
- Purchase reminders
- Booking confirmations and updates
- System-wide announcements
- ๐ฑ Responsive Design: Mobile-first approach with TailwindCSS
- ๐ญ Smooth Animations: Framer Motion powered interactions
- ๏ฟฝ Theme Support: Dark/Light mode switching
- โฟ Accessibility: WCAG compliant design standards
- ๐ Donation System: Support wildlife conservation efforts
- ๐ Conservation Tracking: Wildlife monitoring and data visualization
- ๐ Educational Content: Awareness and educational resources
๐ง Runtime & Framework
โโโ Node.js (Latest LTS)
โโโ Express.js 5.1.0
โโโ ES6 Modules
๐๏ธ Database & ODM
โโโ MongoDB (Latest)
โโโ Mongoose 8.17.1
๐ Authentication & Security
โโโ JWT (jsonwebtoken 9.0.2)
โโโ bcryptjs 3.0.2
โโโ CORS 2.8.5
๐ณ Payment & Services
โโโ Stripe 18.4.0
โโโ Cloudinary 2.7.0
โโโ Nodemailer 7.0.5
โโโ PDFKit 0.17.1
โ๏ธ Utilities
โโโ Multer 2.0.2 (File uploads)
โโโ node-cron 4.2.1 (Scheduling)
โโโ dotenv 17.2.1 (Environment)
โโโ mongoose-paginate-v2 1.7.4
โ๏ธ Core Framework
โโโ React 19.1.1
โโโ React DOM 19.1.1
โโโ Vite (Build tool)
๐ฃ๏ธ Routing & State
โโโ React Router DOM 7.8.0
โโโ React Context API
๐จ Styling & Animation
โโโ TailwindCSS 4.1.11
โโโ Framer Motion 12.23.12
๐ Internationalization
โโโ i18next 25.5.2
โโโ react-i18next 15.7.3
๐ Data Visualization
โโโ Recharts 2.15.4
โโโ jsPDF 2.5.1
๐ง Utilities
โโโ Axios 1.11.0
โโโ React Calendar 6.0.0
โโโ EmailJS Browser 4.4.1
WildLanka/
โ
โโโ ๐ Configuration Files
โ โโโ README.md
โ โโโ LICENSE
โ โโโ package.json
โ โโโ PROJECT_STRUCTURE_DOCUMENTATION.md
โ
โโโ ๐ง backend/ # Server-side Application
โ โโโ server.js # Entry point
โ โโโ config/ # Configuration files
โ โโโ controllers/ # Business logic (15 controllers)
โ โโโ middleware/ # Authentication & upload middleware
โ โโโ models/ # MongoDB schemas (14 models)
โ โโโ routes/ # API endpoints (15 route files)
โ โโโ services/ # Background services
โ โโโ temp/ # Temporary file storage
โ
โโโ ๐จ frontend/ # Client-side Application
โโโ public/ # Static assets
โโโ src/
โ โโโ components/ # Reusable UI components (40+ components)
โ โโโ pages/ # Full page components (25+ pages)
โ โโโ context/ # React Context providers
โ โโโ hooks/ # Custom React hooks
โ โโโ services/ # API service functions
โ โโโ translations/ # i18n language files
โ โโโ utils/ # Utility functions
โโโ vite.config.js # Build configuration
๐ For detailed project structure, see PROJECT_STRUCTURE_DOCUMENTATION.md
โ
Node.js >= 18.0.0
โ
npm >= 9.0.0
โ
MongoDB >= 6.0
โ
GitThis project uses environment variables for sensitive configuration. The actual .env files are not included in the repository for security reasons.
Backend Environment Variables:
# Copy example file and configure
cp backend/.env.example backend/.env# Server Configuration
PORT=5000
# Database Connection
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/wildlanka
# Image Upload Service
IMGBB_API_KEY=your_imgbb_api_key_here
# Frontend URLs (for CORS)
CLIENT_ORIGIN=http://localhost:5173
FRONTEND_URL=http://localhost:5173
# Authentication
JWT_SECRET=your-super-secret-jwt-key-change-this
# Payment Processing
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key_here
# Weather Service
OPEN_WEATHER_MAP_API_KEY=your_openweathermap_api_key_hereFrontend Environment Variables:
# Copy example file and configure
cp frontend/.env.example frontend/.env# API Configuration
VITE_API_BASE_URL=http://localhost:5000
โ ๏ธ CRITICAL SECURITY NOTE:
- NEVER commit
.envfiles to GitHub - they contain sensitive API keys and secrets- Use
.env.examplefiles as templates to create your own.envfiles locally- Each developer must obtain their own API keys and credentials
- See SECURITY.md for detailed security guidelines and setup instructions
git clone https://github.com/OsandaMadugalle/WildLanka.git
cd WildLanka# Install root dependencies
npm install
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install# Set up backend environment
cd backend
cp .env.example .env
# Edit .env with your configuration
# Set up frontend environment
cd ../frontend
cp .env.example .env
# Edit .env with your configurationTerminal 1 - Backend Server:
cd backend
npm run dev
# Server runs on http://localhost:5000Terminal 2 - Frontend Development Server:
cd frontend
npm run dev
# Client runs on http://localhost:3000- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- API Health Check: http://localhost:5000/health
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
User registration |
POST |
/api/auth/login |
User login |
POST |
/api/auth/staff-login |
Staff login |
POST |
/api/auth/forgot-password |
Password reset |
GET |
/api/auth/verify-token |
Token verification |
| Resource | Endpoints | Description |
|---|---|---|
| Packages | /api/packages |
Safari package management |
| Bookings | /api/bookings |
Booking system operations |
| Safari Requests | /api/safariRequests |
Custom safari package requests |
| Users | /api/users |
User account management |
| Staff | /api/staff |
Staff management system |
| Vehicles | /api/vehicles |
Fleet management |
| Reviews | /api/reviews |
Customer review system |
| Donations | /api/donations |
Wildlife conservation donations |
| Gallery | /api/gallery |
Photo gallery and bidding management |
| Gallery Purchases | /api/galleryPurchase |
Photo purchase and delivery system |
| Bidding Admin | /api/biddingAdmin |
Real-time bidding administration |
| Weather | /api/weather |
Weather data integration |
| Resource | Endpoints | Description |
|---|---|---|
| Attendance | /api/attendance |
Staff attendance tracking |
| Payroll | /api/payroll |
Payroll management |
| Notifications | /api/notifications |
System notifications |
| Contact Messages | /api/contactMessages |
Customer inquiry management |
๐ For complete API documentation with request/response examples, see the PROJECT_STRUCTURE_DOCUMENTATION.md
WildLanka supports three languages to serve the diverse Sri Lankan community:
| Language | Code | Coverage |
|---|---|---|
| English | en |
Complete UI, API responses, documentation |
| เทเทเถเทเถฝ (Sinhala) | si |
Complete UI, chatbot, customer-facing content |
| เฎคเฎฎเฎฟเฎดเฏ (Tamil) | ta |
Complete UI, chatbot, customer-facing content |
- ๐ Dynamic Language Switching: Real-time language changes
- ๐ค AI Chatbot: Trilingual support with context awareness
- ๐ฑ Responsive Text: Proper text rendering for all scripts
- ๐ฏ Cultural Adaptation: Region-specific date/time formats
- ๐ Admin Dashboard: Multi-language content management
This project uses sensitive API keys and credentials that must NOT be committed to GitHub.
Important Files:
- ๐ซ
.envfiles are git-ignored and contain your actual secrets - โ
.env.examplefiles are templates showing required variables - ๐ SECURITY.md - Complete security guidelines and setup instructions
Setup Process:
- Copy
.env.exampleto.envin bothbackend/andfrontend/directories - Fill in your own API keys and credentials
- Never commit or share your
.envfiles
Required Services:
- MongoDB: Database connection (MongoDB Atlas)
- ImgBB: Image hosting service (ImgBB)
- Stripe: Payment processing (Stripe Dashboard)
- OpenWeatherMap: Weather data API (OpenWeatherMap)
๐ For detailed security guidelines, key management, and what to do if keys are exposed, see SECURITY.md
This project is developed and maintained by a dedicated team of five developers who contributed equally to all aspects of the system, led by Osanda Madugalle:
|
Osanda Madugalle ๐ฏ Project Leader ๐ป Full-Stack Developer |
Kalana Jayawardana ๐ป Full-Stack Developer |
Ravindu Bandara ๐ป Full-Stack Developer |
|
Malinda Samarasekara ๐ป Full-Stack Developer |
Ikshuka Malhengoda ๐ป Full-Stack Developer |
Equal Contribution: All team members worked collaboratively across frontend, backend, testing, and documentation. See detailed contributions in CONTRIBUTORS
This project is protected under a custom license.
โ๏ธ Usage Terms:
โ No forking or downloading without permission
โ No commercial use without authorization
โ No code reuse without written consent
โ
Public viewing for educational purposes
โ
Academic reference with proper citation
Please refer to the LICENSE file for detailed terms and conditions.
Copyright ยฉ 2024 WildLanka Development Team. All rights reserved.
- ๐ Documentation: Check PROJECT_STRUCTURE_DOCUMENTATION.md
- ๐ Bug Reports: Use GitHub Issues
- ๐ก Feature Requests: Submit via GitHub Issues with
enhancementlabel - ๐ง Direct Contact: Reach out to any team member via GitHub profiles
- ๐ง Setup Issues: Check environment configuration
- ๐ Deployment: Follow the getting started guide
- ๐ Updates: Watch repository for latest changes
- ๐ค Collaboration: Contact team for partnership opportunities














