Skip to content

AlexandruMiclea/Proiect-MDS

Repository files navigation

Travel Companion App

Our app is a cross-platform mobile application developed using Expo and React Native, aimed at enhancing the travel experience for users. Designed as a comprehensive travel companion, the app offers a suite of tools and features to assist travelers in planning, navigating, and enjoying their journeys with ease. This is a university project for a Software Development Methods course.

Demo

You can find a video demo of our app here.

Team members

Initial User Stories

  1. As a user, I desire a page that displays a map highlighting the countries I have previously traveled to.
  2. As a user, I want to have a page for my past trips that shows me what my itinerary was for each vacation.
  3. As a user, I want to have the ability to customize my profile based on a rating of how much I enjoy activities involving sport, arts and food.
  4. As a user, I want to have the ability to customize my profile based on a rating of how busy I would like my recommended itinerary to be.
  5. As a user, I want to get recommendations on what city to visit based on a country I chose.
  6. As a user, I want to get recommendations for my next trip in the city I chose based on my profile and a budget I want to specify.
  7. As a user, I want to see the weather in the city I will travel to when I get my recommendation.
  8. As a user, I want a generated itinerary for each day of my trip.
  9. As a user, I want to have a slider that lets me adjust how busy the itinerary is, after I get the recommendation.
  10. As a user, I want a centralized platform to store all my travel-related tickets, including transportation and museum entries, for easy access and organization.
  11. As a user, I want to have an explore page about new countries through rich content covering their traditions, prices, local events, and other relevant information.
  12. As a user, I want to receive timely notifications and reminders for essential travel-related tasks such as flight check-ins and hotel reservations to stay organized during my trip.
  13. As a user, I want to create packing lists tailored to each trip, with suggested items based on the destination, weather forecast, and planned activities.
  14. As a user, I want the option to sync my trip details with popular calendar apps like Google Calendar or Apple Calendar, ensuring seamless integration and avoiding scheduling conflicts.
  15. As a user, I want to have a button where I can donate to support the application development.

Backlog

You can see our backlog here.

UML diagrams

We created them to better understand the designs, code architecture, and proposed implementation of the complex software systems.

Use cases

Sequence

User flow

Bug reporting and solving with pull requests

You can see them here and here.

Refactoring & code standars

You can see some of our commits where we refactorized our code here and here.

Code comments

We used comments to clarify complex logic, serve as internal documentation, and facilitate maintenance and collaboration by explaining code functionality and decisions. They assist in debugging and provide historical context for code changes. You can see some examples here.

Design patterns

We implemented a design pattern that gives us the current authenticated user (called session) and either passes it down as a parameter to nested children components, or can be returned by the useAuth() hook.

We used both of the afforementioned approaches in our code. Passing the session to the nested children in the app is done like this:

src/app/_layout.tsx:
return (
    <AuthProvider>
      <Stack>
        // all pages in this stack can receive the current session as a parameter
      </Stack>
    </AuthProvider>
);

Then we can obtain the session in one of our renders:

export default function Account({ session }: { session: Session }){
  // we can access session here
}

Or by calling the useAuth() hook:

const { session } = useAuth();

Usage of an AI tool

We used AI tools like ChatGPT and GitHub Copilot for a lot of stuff, from solving bugs and generating code to even writing this readme file, you can see some examples here.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published