Roam Ready – An Interactive Travel Blog Application
Roam Ready is an advanced and interactive travel blog application designed for sharing and discovering travel stories and experiences. It features an intuitive interface that simplifies the process of creating, posting, and engaging with travel-related content. The application encourages community interaction, appealing to dedicated travelers and those interested in different cultures and destinations.
- 1. User Story
- 2. Acceptance Criteria
- 3. Technologies Used
- 4. Installation
- 5. Usage
- 6. License
- 7. Contributing
- 8. Tests
- 9. Questions
- 10. Demo
As a travel enthusiast, I want to post my travel stories and experiences on the blog, and read others' travel blogs, So that I can share and learn about different travel experiences, destinations, and tips.
Given I am on the Travel Blog app's homepage, When I want to see the latest travel stories, Then I should find a list of new posts with pictures and short descriptions.
Given I want to share my travel experience, When I choose to write a new blog post, Then I should be able to write my story, upload photos, and share it.
Given I've written my post and added photos, When I click the submit button, Then my story should be posted for others to see and I should get a message saying it's live.
Given I am exploring different travel posts, When I click on a post, Then I should see the full story, all photos, and comments from others.
Given I am not logged in, When I try to post a story or comment, Then I should be asked to log in or sign up first.
Given I want to find posts about a certain place, When I search using relevant keywords, Then I should see a list of related travel blog posts.
Given I want to keep some blogs to read later, When I hit a 'save' or 'bookmark' button on a post, Then that post should be saved to a special list in my profile.
Given I use the app often and want quick access, When I decide to install the app, Then I should have the option to install it as a Progressive Web Application (PWA).
- React.js: Used for building dynamic and responsive user interfaces, allowing for the development of reusable UI components.
- Vite: A modern frontend build tool that improves development experience with fast build times and instant server start.
- ESLint: A static code analysis tool used to identify problematic patterns in JavaScript code, ensuring high code quality and consistency.
- MongoDB: A NoSQL database for storing user data and application content, offering flexibility and scalability.
- Express.js: A minimal Node.js web application framework used for backend development, handling routing, middleware, and server-side logic.
- Node.js: A JavaScript runtime environment that allows for server-side execution of JavaScript, underpinning the Express.js framework.
- Mongoose: An Object Data Modeling (ODM) library for MongoDB and Node.js, managing data relationships and providing schema validation.
- GraphQL: A query language for APIs, used for efficient and flexible data retrieval.
- Apollo Client: Manages both local and remote data with GraphQL, streamlining data fetching, caching, and UI updates.
- JWT (JSON Web Tokens): Used for secure user authentication and session management.
- bcrypt: A library for hashing passwords, enhancing security in user authentication.
- Click on GitHub repository link: GitHub - Roam Ready.
- Navigate to the project's root directory.
- Run
npm install
to install the necessary dependencies.
Roam Ready allows users to explore and interact with travel stories. Users can:
- Access the homepage to view the latest travel stories.
- Share their travel experiences by creating and uploading posts with photos.
- Engage with the community through comments and saving favorite posts.
- Search for posts using relevant keywords.
- Install the app as a Progressive Web Application for quick access.
This project is licensed under the terms of the MIT License.
Contributions are welcome! To contribute to this project, please follow these steps:
- Fork this repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive commit messages.
- Push your changes to your fork.
- Submit a pull request, describing your changes in detail.
(Instructions for application testing, if available)
If you have any questions or need further assistance, feel free to reach out the team:
- GitHub Profile: JuanFranciscoGrillo
- Email: jfrgm1986@gmail.com
-
Visit the live website by clicking here.