An intelligent web application that automatically identifies bird species using audio signal processing and neural network technology. Upload bird audio recordings and get instant species identification with visual and audio references.
- π΅ Audio-based Bird Identification: Upload bird audio files for species recognition
- π User Authentication: Secure login/register system with JWT tokens
- πΌοΈ Visual References: Display bird images alongside audio identification
- π§ Audio Playback: Built-in audio player for reference sounds
- π± Responsive Design: Mobile-friendly interface with Tailwind CSS
- β‘ Real-time Processing: Fast identification with loading indicators
- π Toast Notifications: User-friendly feedback system
- Node.js 18+
- npm or yarn
- MongoDB database
- Firebase account (optional)
-
Clone the repository
git clone https://github.com/rupeshbisen/birdIdentification.git cd birdIdentification -
Install dependencies
npm install # or yarn install -
Environment Setup
cp .env.sample .env.local
Fill in your environment variables:
MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret FIREBASE_CONFIG=your_firebase_config
-
Run the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000
src/
βββ app/ # Next.js 14 App Router
β βββ api/ # API routes
β β βββ all-products/ # Bird identification endpoint
β β βββ login/ # Authentication
β β βββ register/ # User registration
β βββ login/ # Login page
β βββ register/ # Registration page
β βββ page.tsx # Home page
βββ components/ # Reusable UI components
β βββ formElements/ # Form components
β βββ loader/ # Loading components
β βββ Navbar.tsx # Navigation component
β βββ Notification.tsx # Toast notifications
βββ context/ # React Context for state management
βββ database/ # MongoDB connection
βββ middleware/ # Authentication middleware
βββ models/ # Mongoose schemas
β βββ bird.model.tsx # Bird data model
β βββ user.model.tsx # User data model
βββ service/ # API service functions
βββ types/ # TypeScript type definitions
βββ utils/ # Utility functions
- Register/Login: Create an account or sign in to access the identification features
- Upload Audio: Select a bird audio file (supported formats: .mp3, .wav, .mpeg)
- Identify: Click "Predict" to analyze the audio and identify the bird species
- View Results: See the identified bird species with image and reference audio
- Listen: Use the built-in audio player to compare sounds
We welcome contributions from the community! Here's how you can help:
- π Bug Reports: Found a bug? Open an issue
- π‘ Feature Requests: Have an idea? Suggest a feature
- π Documentation: Help improve our docs
- π§ͺ Testing: Add tests or improve existing ones
- π¨ UI/UX: Enhance the user interface and experience
-
Fork the repository
git fork https://github.com/rupeshbisen/birdIdentification.git
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
-
Test your changes
npm run lint npm run build
-
Commit your changes
git commit -m "feat: add amazing feature" -
Push to your branch
git push origin feature/amazing-feature
-
Open a Pull Request
- Provide a clear description of your changes
- Link any related issues
- Add screenshots for UI changes
- Use TypeScript for type safety
- Follow ESLint configuration
- Use meaningful variable and function names
- Add comments for complex logic
- Keep components small and focused
- Use Tailwind CSS for styling
We follow Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation changesstyle:Code style changesrefactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
This project is licensed under the MIT License - see the LICENSE file for details.
- Bird audio samples and images from various ornithology databases
- Neural network models for audio signal processing
- Open source community for amazing tools and libraries
- π§ Email: support@birdidentification.com
- π¬ Discord: Join our community
- π Documentation: Full docs
Made with β€οΈ by Rupesh Bisen