https://github.com/rudra-gohil/unstop_comp
24 Build a tool that identifies invasive plant or insect species from a user's photo to help control their spread.
https://github.com/rudra-gohil/unstop_comp
adam-optimizer group-normalization group-theory julia typescript
Last synced: about 1 month ago
JSON representation
24 Build a tool that identifies invasive plant or insect species from a user's photo to help control their spread.
- Host: GitHub
- URL: https://github.com/rudra-gohil/unstop_comp
- Owner: rudra-gohil
- Created: 2025-09-07T06:06:40.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-07T06:30:19.000Z (9 months ago)
- Last Synced: 2025-09-07T08:29:49.915Z (9 months ago)
- Topics: adam-optimizer, group-normalization, group-theory, julia, typescript
- Language: TypeScript
- Homepage:
- Size: 83.1 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# InvasiveID Julia - Species Identification Platform
## Overview
InvasiveID Julia is a web-based species identification platform that uses AI to identify invasive plants and insects from uploaded images. The application combines a React frontend with an Express.js backend, designed to integrate with a Julia-based machine learning API for species classification. The platform focuses on conservation efforts by helping users identify invasive species across different geographic regions, with particular emphasis on Indian biodiversity.
## User Preferences
Preferred communication style: Simple, everyday language.
## System Architecture
### Frontend Architecture
- **Framework**: React with TypeScript using Vite for development and building
- **UI System**: Shadcn/UI components built on Radix UI primitives with Tailwind CSS styling
- **State Management**: TanStack Query (React Query) for server state and API caching
- **Routing**: Wouter for client-side routing (lightweight alternative to React Router)
- **Styling**: Tailwind CSS with custom CSS variables for theming, including Indian cultural color palette (saffron, forest green, gold)
- **Component Structure**: Modern React patterns with custom hooks for business logic separation
### Backend Architecture
- **Framework**: Express.js with TypeScript
- **Database ORM**: Drizzle ORM with PostgreSQL dialect
- **Session Management**: Express sessions with PostgreSQL session store (connect-pg-simple)
- **File Upload**: Multer middleware for handling image uploads (10MB limit, image files only)
- **API Design**: RESTful endpoints with JSON responses and comprehensive error handling
- **Development**: Hot reloading with Vite integration in development mode
### Database Schema Design
- **Users Table**: Basic authentication with username/password
- **Species Identifications**: Stores image URLs, AI predictions with confidence scores, region codes, and user associations
- **Species Reports**: Community reporting system for species sightings with location and notes
- **JSON Fields**: Predictions stored as JSON with structured data including species name, confidence, scientific name, category, impact level, and native origin
### AI Integration Architecture
- **Julia Backend**: Designed to integrate with a separate Julia-based machine learning service for species identification
- **Mock Implementation**: Currently uses simulated responses matching the expected Julia API structure
- **Regional Filtering**: Species predictions filtered by geographic region codes (BC_CA, US_NE, US_SE, IN_N, IN_S, IN_E, IN_W)
- **Species Database**: Comprehensive catalog of invasive plants and insects with scientific names and impact levels
### State Management Pattern
- **Server State**: TanStack Query handles API calls, caching, and synchronization
- **Local State**: React hooks for component-level state (file uploads, form data, UI states)
- **Error Handling**: Centralized error boundaries with toast notifications for user feedback
## External Dependencies
### Core Framework Dependencies
- **Neon Database**: PostgreSQL hosting service (@neondatabase/serverless)
- **Drizzle**: Database ORM and migration system (drizzle-orm, drizzle-kit)
- **TanStack Query**: Server state management and API layer (@tanstack/react-query)
### UI and Styling
- **Radix UI**: Primitive UI components for accessibility (@radix-ui/react-*)
- **Tailwind CSS**: Utility-first CSS framework with PostCSS
- **Shadcn/UI**: Pre-built component library using class-variance-authority
- **Lucide React**: Icon library for consistent iconography
### Development Tools
- **Vite**: Frontend build tool with HMR and development server
- **TypeScript**: Type safety across frontend and backend
- **ESBuild**: Production bundling for backend code
- **Replit Integration**: Development environment plugins for hot reloading
### File Handling and Utilities
- **Multer**: File upload middleware with memory storage
- **Date-fns**: Date manipulation and formatting
- **Zod**: Schema validation with drizzle-zod integration
- **Wouter**: Lightweight routing library
### Planned Integrations
- **Julia ML Service**: External machine learning API for species identification
- **Image Processing**: Integration with Julia-based computer vision models
- **Geographic Services**: Region-based species filtering and mapping