Wander is a collaborative social application designed for travelers to share their experiences, stories, and adventures with a community of fellow travelers. The platform allows users to create blog posts, interact with other users through comments and likes, discover new destinations, and connect with like-minded individuals.
Wander aims to provide a comprehensive platform for travelers to:
- Share their travel experiences through blog posts
- Interact with other users by commenting on posts and liking content
- Discover new destinations and get inspired for their next adventure
- Connect with a community of fellow travelers to exchange tips, recommendations, and stories
Wander implements user authentication and authorization using JSON Web Tokens (JWT), ensuring secure access to user accounts and protected resources.
Users can create, edit, and delete blog posts, including uploading images and categorizing posts based on destination or theme.
Wander includes interactive features such as commenting on posts, liking content, and signaling inappropriate or offensive posts for moderation.
The platform supports real-time updates using Socket.IO, enabling live chat and notifications for users.
Wander integrates a chatbot powered by Google Generative AI, providing users with personalized recommendations, travel tips, and answers to common questions.
The project includes comprehensive API documentation using the OpenAPI Specification, facilitating easy integration with external services and clients.
- Node.js
- Express.js
- MongoDB
- Mongoose
- JSON Web Tokens (JWT)
- bcrypt
- dotenv
- multer
- Chart.js
- Google Generative AI
- Socket.IO (optional)
- OpenAPI Specification
To get started with Wander, follow these steps:
- Clone the repository to your local machine.
- Install dependencies using npm or yarn.
- Set up environment variables using a .env file.
- Run the application using Node.js.
Contributions to Wander are welcome! If you'd like to contribute, please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure tests pass.
- Submit a pull request with a detailed description of your changes.