A personal travel diary built with React and deployed on GitHub Pages. This single-page application showcases my travel experiences while demonstrating fundamental React concepts.
Check out my travel memories: https://kvothe1387.github.io/Travel-Journal/
- Responsive design that works on mobile, tablet, and desktop
- Clean, modern UI for showcasing travel memories
- Dynamic content generation from a centralized data source
- Location markers with Google Maps integration
- Photo for each destination
- React.js
- JavaScript (ES6+)
- CSS3
- Vite (Build tool)
- GitHub Pages (Deployment)
This project was built to practice several important React concepts:
- Component composition and reusability
- Props and data passing between components
- Array.map() for generating repetitive UI elements
- Conditional rendering
- Project organization and structure
- Deployment workflow with GitHub Pages
Travel-Journal/
├── public/
│ ├── favicon.ico
│ └── index.html
├── src/
│ ├── assets/
│ │ ├── marker.png
│ │ └── [destination images]
│ ├── components/
│ │ ├── Entry.jsx
│ │ └── Header.jsx
│ ├── App.jsx
│ ├── data.js
│ ├── index.css
│ └── main.jsx
├── .gitignore
├── package.json
├── README.md
└── vite.config.js
- Created the initial React app using Vite
- Designed the component structure and data model
- Built reusable components for each travel entry
- Implemented responsive design with CSS
- Added dynamic content generation from data.js
- Configured for GitHub Pages deployment
- Implemented continuous deployment workflow
-
Clone this repository
git clone https://github.com/kvothe1387/Travel-Journal.git
-
Navigate to the project directory
cd Travel-Journal
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Build for production
npm run build
This project is deployed to GitHub Pages using GitHub Actions. Each push to the main branch automatically triggers a new build and deployment.
To deploy manually:
npm run deploy
Through building this project, I gained valuable experience with:
- Properly structuring React components for reusability
- Managing data flow through props
- Working with array methods to generate dynamic content
- Handling asset paths in development vs production environments
- Troubleshooting deployment issues with GitHub Pages
- Implementing responsive design principles
- Add search/filter functionality
- Implement dark mode
- Add animations for smoother transitions
- Create an admin interface for adding new entries
- Implement a backend for dynamic content management
This project is licensed under the MIT License - see the LICENSE file for details.
David McCullough
- GitHub: @kvothe1387
- LinkedIn: /davidmc1387
This project was created as part of my journey to improve my React skills and document my travels.