Skip to content

OsandaMadugalle/WildLanka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

983 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿพ WildLanka - Wildlife Safari Management System

License: Custom Contributors Last Commit Repo Size MERN Stack React Node.js MongoDB

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.


๐Ÿ“‹ Table of Contents


๐Ÿ“ธ Screenshots

๐Ÿ  Home & Landing Page

WildLanka Home Page

Beautiful landing page with wildlife imagery and awareness content

๐ŸŽฏ Safari Packages & Booking

Safari Packages

Comprehensive safari package listings with detailed itineraries

Wildlife Calendar

Wildlife calendar for planning your safari adventures

๐Ÿ“ธ Photo Marketplace & Gallery

Gallery & Marketplace

Wildlife photo marketplace with direct sales and bidding system

๐Ÿ’ผ Admin & Staff Dashboards

Admin Dashboard

Comprehensive admin panel with analytics and management tools

Driver Dashboard

Driver dashboard for managing assignments and schedules

Tour Guide Dashboard

Tour guide dashboard with booking and customer information

๐Ÿ‘ค User Features

User Account

User account management and profile settings

Customer Reviews

Customer reviews and feedback system

๏ฟฝ Information & Support Pages

About Us

About WildLanka and our mission

Contact Us

Contact page for customer inquiries

FAQ Page

Frequently asked questions and support

๏ฟฝ Legal & Privacy

Click to view legal pages
Privacy Policy

Privacy policy and data protection

Terms of Service

Terms of service and usage guidelines

Cookie Policy

Cookie policy and consent management


๐ŸŒŸ Features

๐Ÿฆ Core Safari Management

  • ๐Ÿ“… 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

๐Ÿ’ผ Business Operations

  • ๐Ÿ’ณ 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

๐Ÿค– AI-Powered Features

  • ๐Ÿ—ฃ๏ธ 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

๐ŸŽจ Modern User Experience

  • ๐Ÿ“ฑ Responsive Design: Mobile-first approach with TailwindCSS
  • ๐ŸŽญ Smooth Animations: Framer Motion powered interactions
  • ๏ฟฝ Theme Support: Dark/Light mode switching
  • โ™ฟ Accessibility: WCAG compliant design standards

๐ŸŒ Conservation Focus

  • ๐Ÿ’š Donation System: Support wildlife conservation efforts
  • ๐Ÿ“ˆ Conservation Tracking: Wildlife monitoring and data visualization
  • ๐ŸŽ“ Educational Content: Awareness and educational resources

๐Ÿ› ๏ธ Tech Stack

Backend

๐Ÿ”ง 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

Frontend

โš›๏ธ 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

๐Ÿ“ Project Structure

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


โš™๏ธ Installation & Setup

Prerequisites

โœ… Node.js >= 18.0.0
โœ… npm >= 9.0.0
โœ… MongoDB >= 6.0
โœ… Git

Environment Variables

This 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_here

Frontend 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 .env files to GitHub - they contain sensitive API keys and secrets
  • Use .env.example files as templates to create your own .env files locally
  • Each developer must obtain their own API keys and credentials
  • See SECURITY.md for detailed security guidelines and setup instructions

๐Ÿš€ Getting Started

1. Clone Repository

git clone https://github.com/OsandaMadugalle/WildLanka.git
cd WildLanka

2. Install Dependencies

# Install root dependencies
npm install

# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install

3. Configure Environment

# 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 configuration

4. Start Development Servers

Terminal 1 - Backend Server:

cd backend
npm run dev
# Server runs on http://localhost:5000

Terminal 2 - Frontend Development Server:

cd frontend
npm run dev
# Client runs on http://localhost:3000

5. Access Application


๐Ÿ“š API Documentation

Authentication Endpoints

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

Core Business Endpoints

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

Admin & Management

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


๐ŸŒ Multilingual Support

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

Implementation Features:

  • ๐Ÿ”„ 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

๏ฟฝ Security

Environment Variables & API Keys

This project uses sensitive API keys and credentials that must NOT be committed to GitHub.

Important Files:

  • ๐Ÿšซ .env files are git-ignored and contain your actual secrets
  • โœ… .env.example files are templates showing required variables
  • ๐Ÿ“– SECURITY.md - Complete security guidelines and setup instructions

Setup Process:

  1. Copy .env.example to .env in both backend/ and frontend/ directories
  2. Fill in your own API keys and credentials
  3. Never commit or share your .env files

Required Services:

๐Ÿ”’ For detailed security guidelines, key management, and what to do if keys are exposed, see SECURITY.md


๏ฟฝ๐Ÿ‘ฅ Contributors

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


๏ฟฝ License

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.


๐Ÿ“ž Support

Getting Help

  • ๐Ÿ“– Documentation: Check PROJECT_STRUCTURE_DOCUMENTATION.md
  • ๐Ÿ› Bug Reports: Use GitHub Issues
  • ๐Ÿ’ก Feature Requests: Submit via GitHub Issues with enhancement label
  • ๐Ÿ“ง Direct Contact: Reach out to any team member via GitHub profiles

Development Support

  • ๐Ÿ”ง Setup Issues: Check environment configuration
  • ๐Ÿš€ Deployment: Follow the getting started guide
  • ๐Ÿ”„ Updates: Watch repository for latest changes
  • ๐Ÿค Collaboration: Contact team for partnership opportunities

๐Ÿพ WildLanka - Protecting Wildlife, Empowering Tourism ๐ŸŒฟ

Made with โค๏ธ by the WildLanka Team | Sri Lanka ๐Ÿ‡ฑ๐Ÿ‡ฐ

GitHub License

About

WildLanka aims to provide a digital platform for wildlife tracking and conservation as part of the Year 2 Semester 2 (Y2S2) university project.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages