Giter Club home page Giter Club logo

cpsc455-bugstorm / travelerstea Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 2.0 50.28 MB

A Trip Planning App that tailors travel itineraries based on user preferences and providing detailed information about destinations; making travel planning less daunting and more enjoyable.

Home Page: https://travelerstea-906d.onrender.com

License: MIT License

HTML 0.93% CSS 0.63% JavaScript 98.02% Shell 0.04% Dockerfile 0.39%
googleapi mapbox-gl mern mui openai

travelerstea's People

Contributors

andyliang1 avatar graywing13 avatar l0lmaker avatar nlmeng avatar vee-16 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

nlmeng v-khdumi

travelerstea's Issues

Scrum Update 1: May 27th

Due: 28th Sunday 2023 10pm

For all team members:

  1. What did you work on this past iteration (2 weeks)?
  2. What were any major issues/challenges you ran into?
  3. What do you plan to work on for this coming iteration (2 weeks)?

~5 sentences max

Make frontend 3.0

image

  • Build out regular view
  • Build out compact view
  • Remove this stuff in viewSlice.js: setContentFullscreen, setContentNonFullscreen,

Extract location coordinates and description from GoogleAPI

  1. Obtain Google API Credentials:
  • Using Google Cloud Console, create API Key for project.
  • Enable the following APIs: Places API and Geocoding API
  1. Backend Implementation:
  • Set up backend routes and controllers to handle API requests.
  • Install the necessary packages to make HTTP requests in your backend.
  • Store Google API credentials securely in your backend configuration (environment variables).
  1. Fetch Location Coordinates (Places API):
  • Implement a backend route to fetch place coordinates using the Places API.
  • In the backend controller, make an HTTP GET request to the Places API endpoint with the place name and city
  • Parse the response and extract the latitude and longitude coordinates.
  • Return the coordinates as the API response.
  1. Further response interests:
  • Ratings of place
  • Opening hours

Create Trip Endpoint

The Create Trip Endpoint should accept a basic list of constraints:

  • Destination
  • Number of Days
  • Budget
  • Number of stages (frontend will refer to it as places per day, backend as stages)

For now it can respond with hardcoded data.

Work with the frontend folks to design a response structure that works for both frontend and backend.

Currently @L0Lmaker is working with the following structure:

const mongoose = require('mongoose')

const itineraryStageSchema = new mongoose.Schema({
  stage: Number,
  place: String,
  description: String,
  address: String,
  cost: Number,
})

const itinerarySchema = new mongoose.Schema({
  destination: String,
  budget: Number,
  days: Number,
  stages: Number,
  preferences: [String],
  plan: [itineraryStageSchema],
})

const Itinerary = mongoose.model('Itinerary', itinerarySchema)

module.exports = Itinerary

But it is open to changes if there needs to be any.

Implement minimalist mode

  • Remove teacups (maybe use them as bullet points instead)
  • Maximize amount of info displayed on one page, while continuing to give map a lot of screen real estate.

Make timeline generator

Given a list of objects with the following schema:

  • color (of the pin)
  • icon (an emoji / bootstrap icon, recommended by chatgpt)
  • title

Create a reusable component that generates a timeline from that list.

DoD

  • When an input list is fed in, a horizontally scrolling timeline with pins coming out of it is generated
  • Each item in the input list is represented by its own pin

Bonus:

  • Glow and scale to 1.01% when hovered
  • When scrolling down with a mouse, this scrollbar should scroll right (think the webstorm tabs bar) --> https://stackoverflow.com/a/57217517
  • Separate the pins / sections by day number

Implement dark/light mode toggle

  • Probably just involves conditionally making bg-slate-100 becomebg-slate-900.
  • And figure out how to make the text white across the whole app.
  • And add it as a preference in preferences modal

Update Server README

Local dev will help us develop without messing with the actual Atlas cluster. README should include details about how to setup local dev server and how to switch between connecting to Atlas.

Originally posted by @L0Lmaker in #37 (comment)

Project Progress 2 Tasks

  • Create react app
  • Flesh out Component Structure
  • Create a main component
  • Effective styling for main component
  • Minimum of 5 components
  • Demonstrable progress towards one of minimal goals
  • Add redux

Make map display

DoD

Basic #75

Stretch #201

  • Map should display and be centered among all points (e.g. take the leftmost/topmost and rightmost/bottommost values out of a list of coordinate sets, initialize map to be the center of it)
  • Map should have proper zoom level

Keep in mind

  • Try to minimize rerenders / requests to mapbox, since calls to mapbox are limited

Widgets on map

Map should have 2 widgets:

  1. A (?) thing that displays how to use the map when it's hovered (e.g. ctrl + right mouse to pivot)
  2. A "reset view" button that brings user back to the initial view

Scrum Update 2: June 10th

Due: June 11th Sunday 2023 10pm

For all team members:

  1. What did you work on this past iteration (2 weeks)?
  2. What were any major issues/challenges you ran into?
  3. What do you plan to work on for this coming iteration (2 weeks)?

~5 sentences max

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.