A modern, production-ready React.js application for connecting travelers and exploring destinations together. Built with the latest web technologies and designed with a mobile-first approach.
- Home Feed - Discover travel posts, stories, and destination recommendations
- Find Partner - Connect with travel companions based on destinations and preferences
- Community - Join travel communities and share experiences
- Messaging - Real-time chat with travel buddies
- Profile Management - Customize your travel profile and showcase trips
- Search - Find places, people, and travel content
- Notifications - Stay updated with likes, comments, and friend requests
- Mobile-First Design - Optimized for mobile devices with responsive layouts
- Dark/Light Theme - Toggle between themes with persistent preferences
- Progressive Web App - Installable on mobile devices with offline support
- Toast Notifications - User-friendly feedback for all actions
- Loading States - Smooth loading animations and skeleton screens
- React 18 - Latest stable version with JSX
- Vite - Fast build tool and dev server
- React Router v6 - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- DaisyUI - Beautiful UI components for Tailwind
- Zustand - Lightweight state management with persistence
- TanStack Query - Data fetching and caching (optional)
- Axios - HTTP client for API calls
- ESLint - Code linting and formatting
- Prettier - Code formatting
- Vitest - Unit testing framework
- React Testing Library - Component testing utilities
- Sonner - Beautiful toast notifications
- Lucide React - Modern icon library
- Node.js 16.x or higher
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/your-username/frebud.git cd frebud -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
- Email:
demo@frebud.com - Password:
password123
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build locallynpm run lint # Run ESLint
npm run lint:fix # Fix ESLint errors automatically
npm test # Run unit testsnpm run build # Create optimized production build
npm run preview # Preview the production buildsrc/
βββ assets/ # Static assets (images, icons)
βββ components/ # Reusable UI components
β βββ __tests__/ # Component tests
β βββ Button.jsx # Button component
β βββ Card.jsx # Card component
β βββ ...
βββ pages/ # Route components
β βββ __tests__/ # Page tests
β βββ Feed.jsx # Home feed page
β βββ FindPartner.jsx # Find travel partners
β βββ Community.jsx # Community features
β βββ Message.jsx # Chat interface
β βββ Profile.jsx # User profiles
β βββ ...
βββ state/ # Zustand stores
β βββ authStore.js # Authentication state
β βββ travelStore.js # Travel-related state
β βββ uiStore.js # UI state and preferences
βββ services/ # API services and data fetching
βββ data/ # Mock data (JSON files)
βββ utils/ # Utility functions
βββ test/ # Test configuration
βββ App.jsx # Main app component
βββ main.jsx # App entry point
βββ index.css # Global styles
- Primary: Purple (
#6366f1) - Secondary: Pink (
#ec4899) - Accent: Blue (
#3b82f6)
- Buttons: Multiple variants (primary, secondary, outline, ghost)
- Cards: Flexible card component with hover effects
- Forms: Styled inputs, selects, and textareas
- Navigation: Responsive sidebar and bottom navigation
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
npm test # Run all tests
npm test -- --watch # Run tests in watch mode
npm test Button # Run specific test file- Unit Tests: Components and utilities
- Integration Tests: Page components and user flows
- Form Validation: Input validation and error handling
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy with default settings
npm run build
# Upload the 'dist' folder to your hosting serviceVITE_APP_TITLE="FreBud"
VITE_API_BASE_URL="https://your-api.com"Custom configuration in tailwind.config.js:
- DaisyUI theme customization
- Custom color palette
- Responsive utilities
Optimized build settings in vite.config.js:
- PWA plugin configuration
- Build optimization
- Development server settings
- Add to home screen on mobile devices
- Native app-like experience
- Offline functionality
- Cache static assets
- Background sync (ready for implementation)
- Push notifications (ready for implementation)
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use ESLint and Prettier configurations
- Follow React best practices
- Write tests for new features
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- Design Inspiration: Modern travel and social media apps
- Icons: Lucide React icon library
- UI Components: DaisyUI component library
- Images: Unsplash for demo images
For support and questions:
- Email: support@frebud.com
- GitHub Issues: Create an issue
- Documentation: Wiki
FreBud - Travel.Sleep.Travel π
Made with β€οΈ for travelers around the world.