To check the status of the servers (Frontend server and Backend server) - Click here
- Backend: Travel-Book Backend Repository
- Frontend: Travel-Book Frontend Repository
- Quick Start for Contributors
- Project Overview
- Project Structure
- Purpose & Vision
- Technology Stack
- Key Features
- User Flow
- Mobile-First Approach
- Unique Selling Points
- Accessibility Features
- Contributing & Recognition
- Frontend Development Roadmap
- License
- Support
- Quick Start for Contributors
- Project Overview
- Project Structure
- Purpose & Vision
- Technology Stack
- Key Features
- User Flow
- Mobile-First Approach
- Unique Selling Points
- Accessibility Features
- Contributing & Recognition
- Frontend Development Roadmap
- License
- Support
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn package manager
- Git for version control
- MongoDB (for backend setup, or use MongoDB Atlas)
-
Fork both repositories
Fork the Frontend and Backend repositories to your GitHub account.
-
Clone the repositories
# Clone Frontend git clone https://github.com/YOUR_GITHUB_ID/Travel-Book.git cd Travel-Book # Clone Backend in a separate directory cd .. git clone https://github.com/YOUR_GITHUB_ID/Travel-Book-Backend.git
-
Set up the Backend
cd Travel-Book-Backend npm install cp .env.example .env # Update .env with your configuration (MongoDB, Firebase, Cloudinary, etc.) npm run dev
The backend will be running on
http://localhost:3000by default (or check your backend logs for the actual port). -
Set up the Frontend
In a new terminal window:
cd Travel-Book npm install cp .env.example .env # Update the .env with your configuration (Google Maps API key, Firebase Config, etc.) npm run dev
The frontend will be running on
http://localhost:5173. -
Access the application
Open your browser and navigate to
http://localhost:5173
Read the full contributor guide β
Travel Book is a modern web application designed to help users document, organize, and share their travel experiences. It serves as a digital travel journal where users can record memories, photos, and details about places they've visited. The platform provides a user-friendly interface for travelers to create a personal collection of travel stories, organize them by location and date, and optionally share them with others.
Travel-Book/
βββ .github/
βββ public/
β βββ assets/images/
β βββ robots.txt
β βββ sitemap.xml
βββ src/
β βββ assets/images/
β βββ components/
β β βββ Auth/
β β βββ Cards/
β β βββ ChatBot/
β β βββ Footer/
β β βββ Input/
β β βββ Modals/
β β βββ Navbar/
β β βββ Onboarding/
β β βββ ThemeToggle/
β β βββ BackToTopButton.jsx
β β βββ Navbar.jsx
β β βββ Toaster.jsx
β βββ pages/
β β βββ Auth/
β β βββ Contributors/
β β βββ admin/
β β βββ hero/
β β βββ home/
β β βββ legal/
β β βββ profile/
β β βββ mistake.jsx
β βββ utils/
β β βββ AuthContext.jsx
β β βββ ProtectedRoute.jsx
β β βββ authErrorHandler.js
β β βββ axiosInstance.js
β β βββ constants.js
β β βββ firebase.js
β β βββ helper.js
β β βββ uploadImage.js
β βββ App.jsx
β βββ index.css
β βββ main.jsx
β βββ scrollbar.css
βββ .env.example
βββ .gitignore
βββ CODE_OF_CONDUCT.md
βββ CONTRIBUTING.md
βββ CONTRIBUTORS_RECOGNITION_GUIDE.md
βββ LICENSE
βββ PROJECT_STRUCTURE.md
βββ QUICKSTART.md
βββ SECURITY.md
βββ eslint.config.js
βββ index.html
βββ package.json
βββ postcss.config.js
βββ tailwind.config.js
βββ vercel.json
βββ vite.config.js The primary purpose of Travel Book is to give travelers a dedicated space to preserve their travel memories in a structured and visually appealing way. Rather than having travel photos scattered across different devices or social media platforms, Travel Book centralizes these experiences into a cohesive travel journal that can be accessed from anywhere.
Key goals of the platform include:
- Providing an intuitive way to document travel experiences
- Creating a searchable repository of personal travel memories
- Offering data visualization of travel patterns and statistics
- Supporting offline access for users on the go
- Delivering a responsive experience across all devices
- Framework: React.js
- Styling: Tailwind CSS with custom components
- State Management: React Context API and local state
- Animations: Framer Motion
- Routing: React Router
- UI Components: Custom components with responsive design
- Offline Support: PWA (Progressive Web App) capabilities with service workers
- Data Visualization: Chart.js and custom analytics
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT (JSON Web Tokens) and Firebase
- File Upload: Multer with Cloudinary storage
- API: RESTful API design
- Email: Nodemailer for notifications
- AI Integration: Google Generative AI for chatbot
- Build Tool: Vite
- Frontend Deployment: Vercel
- Backend Deployment: AWS EC2 with Nginx and PM2
- Version Control: Git
- Package Management: npm
- Email/password registration and login
- OTP verification for secure access
- Password reset functionality
- Firebase social authentication
- JWT-based session management
- Create, read, update, and delete travel stories
- Rich text editing for story content
- Image upload and management with Cloudinary
- Location tagging with map integration
- Date tracking for visits
- Favorite marking for important memories
- Search functionality by title, content, or location
- Advanced filtering by date range and location
- Sort stories by various criteria
- Categorize stories as favorites
- View recent trips at a glance
- Dark/light mode toggle with system preference detection
- Responsive design for all device sizes
- Smooth animations and transitions
- Swipe gestures on mobile devices
- Drag and drop interface for image uploads
- Visual representation of travel statistics
- Location frequency analysis
- Travel timeline visualization
- Monthly/yearly travel patterns
- Direct link sharing for stories
- Social media integration (Facebook, Twitter, WhatsApp)
- Customizable sharing messages
- Contributor recognition system
- Chatbot powered by Google Generative AI
- Smart story suggestions and insights
-
Onboarding:
- User lands on the hero page with information about the platform
- User registers or logs in through the authentication system
- New users are welcomed with an introduction to the platform features
-
Core Experience:
- Users can view their collection of travel stories on the home page
- Adding a new story walks users through a step-by-step process
- Existing stories can be viewed, edited, or deleted
- Stories can be marked as favorites for quick access
-
Discovery & Organization:
- Users can search for specific stories
- Advanced filtering by date or location
- Analytics section offers insights into travel patterns
-
Sharing & Community:
- Stories can be shared via multiple platforms
- Contributor recognition for active community members
Travel Book is designed with a mobile-first approach, recognizing that many users will document their travels while on the go:
- Touch-optimized interfaces with appropriate sizing for tap targets
- Swipe gestures for navigation between views
- Responsive layouts that adapt to different screen sizes
- Offline capabilities for areas with limited connectivity
- Optimized image handling for mobile bandwidth considerations
- Quick access to camera for adding travel photos directly
- Focused Purpose: Specifically designed for travel documentation
- Privacy Control: Users have full control over their content
- Structured Organization: Purpose-built system for travel memories
- Visual Analytics: Unique insights into personal travel patterns
- Offline First: Robust offline capabilities
- Cross-Device Experience: Seamless experience across devices
- High contrast mode support via dark/light themes
- Keyboard navigation throughout
- ARIA attributes for screen reader compatibility
- Touch-friendly interfaces with appropriate sizing
- Text scaling support
- Color choices that consider color blindness
We welcome contributions! Travel Book features a comprehensive contributors recognition system to celebrate the efforts of our community members.
- Get Started: Follow our Contributing Guide for setup instructions
- Make Your Mark: Implement features, fix bugs, or improve documentation
- Get Recognition: Submit your contributions through our Contributors Application system
Once you've made meaningful contributions to the project, you can apply to be featured on our contributors page:
- Apply Online: Visit
/contributorsto see current contributors and apply for recognition - Submission Form: Complete the form at
/contributewith details about your contributions - Review Process: Our team reviews applications within 3-5 business days
- Featured Display: Approved contributors are showcased on the main contributors page
We recognize various types of contributions including:
- Code contributions (features, bug fixes, performance improvements)
- Documentation improvements
- Design and UX enhancements
- Community support and engagement
Perfect opportunities for contributors to make meaningful impact!
- Enhanced animations and transitions
- Theme customization options
- Accessibility improvements
- Mobile experience optimization
- Story templates
- Interactive widgets
- Advanced photo gallery
- Custom map components
- Smart search with auto-complete
- Bulk operations
- Advanced export options
- Keyboard shortcuts
- Offline enhancements
- Code splitting and lazy loading
- PWA feature improvements
- Loading state optimizations
This project is open source and available under the MIT License.
If you have any questions or need help getting started, please:
- Check the Contributing Guide
- Open an issue on GitHub
- Join our community discussions
Happy traveling and happy coding!