✨ Because every trip deserves a tale. Whether you're scaling mountains, wandering through bustling cities, or strolling along hidden beaches, the Travel Story App helps you capture, organize, and relive your journeys, one story at a time.
| Screenshot 🛸 |
|---|
![]() |
![]() |
-
✅ Sign up & dive in Create your travel journal in minutes.
-
📝 Write your stories Add titles, descriptions, dates & memories.
-
🖼️ Upload stunning images Because one picture = a thousand words.
-
❤️ Favorite your best moments Highlight the highlights.
-
🔍 Search & filter Instantly find that sunset in Santorini.
-
📱 Fully responsive Looks beautiful on every screen, big or small.
- ⚛️ React + Vite – Lightning-fast pages
- 📦 Redux Toolkit – State management made simple
- 🧭 React Router – Seamless storytelling navigation
- 💅 Tailwind CSS – Clean, modern design
- 🛰️ Axios – Talk to the backend effortlessly
- 📆 React Day Picker – Select travel dates with ease
- 🛎️ React Toastify – Friendly feedback for every action
- 🔧 Node.js + Express – Reliable and fast
- 📚 MongoDB + Mongoose – Store all your travel dreams
- 🔐 JWT Auth – Your memories are safe with us
- 🗂️ Multer – Smooth image uploads
- 🌐 CORS – Cross-origin? Cross it off your list.
- Node.js
v14+ - MongoDB (local or cloud)
# 1. Clone this beautiful journey
git clone https://github.com/VarunB453/TravelStoryApp
cd TravelStoryApp
# 2. Prepare your backend
cd backend
npm install
# 3. Prepare your frontend
cd frontend
npm install🔑 Create a .env file in the backend/ folder:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_key
PORT=3000
🧪 (Optional but cool) Generate a JWT secret:
node generate-secret.jsStart the backend server:
cd backend
npm startStart the frontend dev server:
cd frontend
npm run dev🎉 Head over to: http://localhost:5173 and start writing your story.
POST /api/auth/signup– Create accountPOST /api/auth/signin– Log inGET /api/auth/signout– Log out
POST /api/TravelStoryApp/add– Add a new storyGET /api/TravelStoryApp/get-all– See all your talesPOST /api/TravelStoryApp/edit-story/:id– Update a storyDELETE /api/TravelStoryApp/delete-story/:id– Remove a storyPUT /api/TravelStoryApp/update-is-favourite/:id– Toggle favoriteGET /api/TravelStoryApp/search– Search storiesGET /api/TravelStoryApp/filter– Filter by travel date
POST /api/TravelStoryApp/image-upload– Add an imageDELETE /api/TravelStoryApp/delete-image– Delete an image
TravelStoryApp/
├── backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── uploads/
│ ├── utils/
│ ├── index.js
│ └── multer.js
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── redux/
│ │ ├── utils/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── index.html
│ └── vite.config.js
└── README.mdThis project is licensed under the MIT License — use it, fork it, build on it. Just don’t forget to write your own stories!
Got a feature idea or found a bug? Open an issue, fork the repo, and submit a pull request — we’d love your help!
“Traveling – it leaves you speechless, then turns you into a storyteller.” – Ibn Battuta Start your story today. 🌍🖋️

