A web application for detecting and analyzing building resonance frequencies with user authentication and cloud data storage.
- User Authentication: Secure sign-up and sign-in with Supabase Auth
- Cloud Data Storage: All spaces and recordings are saved to Supabase database
- Audio File Storage: Audio recordings stored securely in Supabase Storage
- Multi-user Support: Each user has their own private data
- Real-time Analysis: Record audio samples with real-time visualization
- Frequency Analysis: Analyze frequency content and identify resonance peaks
- Space Management: Create and manage different acoustic spaces
- Cross-device Sync: Access your data from any device
- Frontend: Next.js 15, React 18, TypeScript, TailwindCSS
- Authentication: Supabase Auth with email/password
- Database: Supabase PostgreSQL with Row Level Security
- Storage: Supabase Storage for audio files
- Audio Processing: Web Audio API for real-time analysis
- UI Components: Custom components with glass morphism design
- Node.js 18+ installed
- A Supabase project
-
Clone and install dependencies:
git clone <repository-url> cd vibe-finder npm install
-
Set up Supabase Project:
- Create a new project at supabase.com
- Go to Settings > API to get your project URL and anon key
- Run the database migrations in your project
-
Configure Environment Variables: Copy
.env.local.example
to.env.local
and fill in your Supabase credentials:NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
-
Run database migrations:
npx supabase db push
-
Start the development server:
npm run dev
-
Open the application: Navigate to http://localhost:3000
The application uses the following main tables:
- profiles: User profile information
- spaces: Acoustic spaces created by users
- samples: Audio recordings and analysis data
- audio_files: Metadata for stored audio files
All tables have Row Level Security (RLS) enabled to ensure users can only access their own data.
- Users sign up with email and password
- Email verification is disabled by default for easier development
- User profiles are automatically created via database triggers
- All data is scoped to the authenticated user
/src/app
- Next.js app router pages/src/components
- React components/auth
- Authentication components/layout
- Layout components/pages
- Page components/ui
- Reusable UI components
/src/lib
- Utility functions and hooks/audio
- Audio processing and recording/supabase
- Supabase client and database functions/hooks
- Custom React hooks
/supabase/migrations
- Database migration files
- Real-time audio visualization
- Multiple sound types (sine waves, pink noise, chirp signals, etc.)
- Signal quality analysis
- Frequency peak detection
- Create and organize acoustic spaces
- Store recordings with metadata
- Export analysis data
- Cross-device synchronization
- Row Level Security ensures data privacy
- Secure file storage with signed URLs
- Authentication required for all operations
npm run test
npm run build
npx supabase db push
The application can be deployed to any platform that supports Next.js:
- Vercel (recommended for Next.js apps)
- Netlify
- Railway
- Any Node.js hosting provider
Make sure to set the appropriate environment variables in your deployment platform.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.