A modern community platform built with Nuxt 4 and Firebase that enables people to share live streams, organize events, and build connections to make Slovakia the best country to live in.
- Live Stream Embedding: Support for YouTube Live and Twitch streams with automatic embedding
- External Event Links: Integration with Zoom, Google Meet, and other platforms
- Real-time Status: Live event indicators with auto-refresh
- Event Management: Create, edit, and manage community events
- User Authentication: Firebase-powered sign up/sign in system
- Event Organization: Users can create and manage their own events
- Community Stats: Track total events, members, and shared stories
- Responsive Design: Mobile-first design that works on all devices
- Nuxt 4: Latest version with improved performance and developer experience
- Tailwind CSS: Modern utility-first CSS framework
- Firebase Integration: Real-time database, authentication, and hosting ready
- TypeScript: Full type safety throughout the application
- VueUse: Powerful composables for enhanced functionality
- Node.js 18+
- npm or yarn
- Firebase project (already configured)
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000(or the port shown in terminal)
The Firebase configuration is already set up in plugins/firebase.client.ts with the project:
- Project ID:
growni10x-community - Auth Domain:
growni10x-community.firebaseapp.com
video-community-app/
βββ components/ # Reusable Vue components
β βββ EventCard.vue # Individual event display
β βββ Header.vue # Navigation header
β βββ Footer.vue # Site footer
βββ composables/ # Vue composables for business logic
β βββ useAuth.ts # Authentication management
β βββ useEvents.ts # Event CRUD operations
βββ layouts/ # Page layouts
β βββ default.vue # Main application layout
βββ pages/ # Application routes
β βββ index.vue # Homepage
β βββ live.vue # Live events page
β βββ events/ # Event-related pages
β β βββ index.vue # All events listing
β β βββ [id].vue # Individual event details
β β βββ create.vue # Event creation form
β βββ auth/ # Authentication pages
β βββ login.vue # Sign in page
β βββ signup.vue # Sign up page
βββ plugins/ # Nuxt plugins
β βββ firebase.client.ts # Firebase initialization
β βββ auth.client.ts # Auth state initialization
βββ types/ # TypeScript type definitions
β βββ event.ts # Event-related types
βββ nuxt.config.ts # Nuxt configuration
- Hero section with community mission
- Live events showcase with embedded streams
- Upcoming events preview
- Community statistics
- Recent community stories
- Filterable event listing (All, Live, Upcoming, Past)
- Event search and categorization
- Create new event button
- Responsive grid layout
- Featured live stream with full embed
- Real-time auto-refresh every 30 seconds
- Multiple concurrent live events
- Direct join/watch functionality
- Comprehensive event creation form
- Support for multiple platform types
- Automatic embed URL generation
- Tag system for categorization
- Clean, accessible sign in/up forms
- Firebase Authentication integration
- Form validation and error handling
- Automatic redirects after authentication
{
id: string
title: string
description: string
startDate: Date
endDate: Date
status: 'upcoming' | 'live' | 'ended'
type: 'youtube' | 'twitch' | 'zoom' | 'meet' | 'other'
streamUrl?: string
embedUrl?: string
externalLink?: string
isEmbeddable: boolean
organizer: string
organizerId: string
thumbnailUrl?: string
tags: string[]
attendeeCount: number
maxAttendees?: number
createdAt: Date
updatedAt: Date
}{
id: string
email: string
displayName: string
photoURL?: string
bio?: string
location?: string
website?: string
createdAt: Date
updatedAt: Date
}- YouTube Live: Automatic embed URL generation from watch URLs
- Twitch: Live stream embedding with chat integration
- Zoom: External link integration (non-embeddable)
- Google Meet: External link integration (non-embeddable)
- Custom Platforms: Generic external link support
The system automatically converts platform URLs to embeddable formats:
- YouTube:
youtube.com/watch?v=IDβyoutube.com/embed/ID - Twitch:
twitch.tv/channelβplayer.twitch.tv/?channel=channel
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint (if configured)
npm run typecheck # Run TypeScript checks (if configured)- Full-text search across events
- Advanced filtering and faceting
- Auto-complete suggestions
- Search analytics
- Event Categories: Technology, Business, Social, etc.
- User Profiles: Detailed community member profiles
- Event Reviews: Post-event feedback and ratings
- Calendar Integration: Export events to Google Calendar
- Push Notifications: Real-time event updates
- Social Sharing: Enhanced sharing capabilities
- Event Analytics: Organizer insights and metrics
Building technology to make Slovakia the best country to live in through community connections, shared experiences, and collaborative growth.
Built with β€οΈ for the Slovakia community using Nuxt 4, Firebase, and Tailwind CSS.