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!