Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bit Voice Recorder

Version License React TypeScript i18next

English | 日本語

Bit Voice Recorder is a simple and reliable web-based application for long-duration audio recording, playable and manageable directly in your browser. Built with React, TypeScript, and modern web technologies.

✨ Features

  • 🎙️ High-quality audio recording using MediaRecorder API
  • 📊 Real-time audio visualization with Web Audio API
  • 💾 Local storage with IndexedDB (no server required)
  • ▶️ Built-in audio player with progress control
  • 📱 Mobile support with Capacitor for iOS/Android
  • 🎨 Modern UI with Tailwind CSS
  • 🌙 Dark theme with custom brand colors
  • ⬇️ Export recordings as audio files
  • 🗑️ Delete recordings with confirmation
  • 🌐 Multilingual support with automatic language detection and manual switching (English and Japanese)

🚀 Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn

Installation

  1. Clone the repository:
git clone <repository-url>
cd bit-voice-recorder
  1. Install dependencies (including internationalization libraries):
npm install
  1. Start the development server:
npm run dev
  1. Open your browser and navigate to http://localhost:5173

🛠️ Build Instructions

Web Build

# Build for production
npm run build

# Preview the production build
npm run preview

The built files will be in the dist/ directory.

Mobile Build (Capacitor)

iOS Build

  1. Install iOS dependencies:
npm install @capacitor/ios
npx cap add ios
  1. Build and sync:
npm run build
npx cap sync ios
  1. Open in Xcode:
npx cap open ios

Android Build

  1. Install Android dependencies:
npm install @capacitor/android
npx cap add android
  1. Build and sync:
npm run build
npx cap sync android
  1. Open in Android Studio:
npx cap open android

📁 Project Structure

bit-voice-recorder/
├── src/
│   ├── components/           # React components
│   │   ├── AudioPlayer.tsx   # Audio playback component
│   │   ├── Recorder.tsx      # Recording component
│   │   ├── RecordingList.tsx # Recording list component
│   │   └── icons/           # Icon components
│   ├── hooks/               # Custom React hooks
│   │   └── useRecorder.ts   # Recording logic hook
│   ├── services/            # Service layer
│   │   └── db.ts           # IndexedDB operations
│   │   └── i18n.ts         # i18n configuration and initialization <!-- NEW -->
│   ├── App.tsx             # Main application component
│   ├── index.tsx           # Application entry point
│   └── types.ts            # TypeScript interfaces
├── android/                # Capacitor Android project
├── ios/                   # Capacitor iOS project
├── dist/                  # Built files
├── public/               # Public assets
│   └── locales/          # Language translation files (en, ja) <!-- NEW -->
├── package.json
├── tsconfig.json
├── vite.config.ts
└── capacitor.config.ts

🎛️ Configuration

Capacitor Configuration

The app is configured for mobile deployment using Capacitor. Key settings in capacitor.config.ts:

  • appId: com.example.bitvoicerecorder
  • appName: Bit Voice Recorder
  • webDir: dist

Permissions

The app requires microphone access. Upon first access, the browser will automatically prompt for microphone permission. If permission is denied or a device is not found, an informative message will be displayed.

  • Web: Browser will prompt for microphone permission
  • Mobile: Add microphone permissions to platform-specific configurations

🧪 Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npx cap sync - Sync web assets to native projects
  • npx cap run ios - Run on iOS device/simulator
  • npx cap run android - Run on Android device/emulator
  • npm test - Run unit tests
  • npm run test:all - Run all unit and integration tests

Technology Stack

  • Frontend: React 18, TypeScript
  • Styling: Tailwind CSS
  • Build Tool: Vite
  • Mobile: Capacitor
  • Audio APIs: MediaRecorder API, Web Audio API
  • Storage: IndexedDB
  • State Management: React Hooks
  • Internationalization: i18next, react-i18next, i18next-browser-languagedetector

🎨 Theming

The app uses a custom dark theme with the following colors:

--brand-primary: #1E1F22     /* Main background */
--brand-secondary: #2B2D31   /* Card background */
--brand-accent: #5865F2      /* Accent color */
--brand-light: #F2F3F5       /* Primary text */
--brand-text: #D7DADD        /* Secondary text */

🔧 Browser Compatibility

  • Chrome/Edge 85+
  • Firefox 79+
  • Safari 14+
  • Mobile browsers with MediaRecorder support

📱 Mobile Features

  • Responsive design optimized for mobile devices
  • Native mobile app packaging with Capacitor
  • Touch-friendly controls
  • Device microphone access

🔒 Privacy & Security

  • Local-only storage: All recordings are stored locally in your browser
  • No server communication: The app works completely offline
  • No data collection: No personal data is transmitted or stored externally
  • Secure permissions: Microphone access requires explicit user consent

🐛 Troubleshooting

Microphone Access Issues

If you encounter issues with microphone access:

  1. Ensure HTTPS is used (required for microphone access in some browsers).
  2. Check your browser's site permissions for microphone access.
  3. Verify that your microphone device is properly connected and enabled in your operating system settings.
  4. Try refreshing the page and granting permission again.

Build Issues

  1. Clear node_modules and reinstall:
rm -rf node_modules package-lock.json
npm install
  1. Clear Vite cache:
npx vite --force

Mobile Build Issues

  1. Sync Capacitor:
npx cap sync
  1. Clean and rebuild:
npm run build
npx cap copy

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add some amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • React team for the excellent framework
  • Vite team for the fast build tool
  • Capacitor team for mobile app packaging
  • Tailwind CSS for the styling framework
  • i18next team for the internationalization framework

📞 Support

If you encounter any issues or have questions, please open an issue on GitHub.


Built with ❤️ using React, TypeScript, and modern web technologies.

About

Bit Voice Recorder is a simple and reliable web-based application for long-duration audio recording, playable and manageable directly in your browser. Built with React, TypeScript, and modern web technologies.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages