A full-stack web application for capturing, managing, and sharing your personal travel stories. Users can register, log in, and create travel stories with images, locations, and dates. The app supports search, filtering, and favorites, providing a beautiful and modern user experience.
- User Authentication: Register and log in securely with JWT-based authentication.
- Travel Story Management: Add, edit, delete, and view your travel stories.
- Image Uploads: Attach images to your stories and manage uploads.
- Favorites: Mark/unmark stories as favorites for quick access.
- Search & Filter: Search stories by text or filter by date range.
- Responsive UI: Modern, mobile-friendly interface built with React and Tailwind CSS.
- Frontend: React, Vite, Tailwind CSS, Axios, React Router, React Icons, React Day Picker, React Toastify, Moment.js
- Backend: Node.js, Express, MongoDB, Mongoose, JWT, Multer, bcrypt
TravelStoryAppFinal/
backend/ # Node.js/Express API
frontend/ # React app (Vite)
- Node.js (v16+ recommended)
- npm or yarn
- MongoDB instance (local or cloud)
- Navigate to the backend directory:
cd backend - Install dependencies:
npm install
- Create a
.envfile with the following:ACCESS_TOKEN_SECRET=your_jwt_secret
- Update
config.jsonwith your MongoDB connection string. - Start the backend server:
The backend runs on
node index.js
http://localhost:8000by default.
- Navigate to the frontend directory:
cd frontend/travel-story-app - Install dependencies:
npm install
- Start the frontend development server:
The frontend runs on
npm run dev
http://localhost:5173by default.
- Register a new account or log in with existing credentials.
- Add your travel stories with images, locations, and dates.
- Search, filter, and mark stories as favorites.
- Edit or delete your stories as needed.
- Log out securely when done.
POST /create-account— Register a new userPOST /login— User loginGET /get-user— Get current user info (JWT required)POST /image-upload— Upload an imageDELETE /delete-image— Delete an uploaded imagePOST /add-travel-story— Add a new travel story (JWT required)GET /get-all-stories— Get all stories for the logged-in userPUT /edit-story/:id— Edit a story (JWT required)DELETE /delete-story/:id— Delete a story and its image (JWT required)PUT /update-is-favourite/:id— Mark/unmark a story as favoriteGET /search— Search storiesGET /travel-stories/filter— Filter stories by date range
Contributions are welcome! Please open issues or submit pull requests for improvements or bug fixes.
This project is licensed under the MIT License.