Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
beb9747
Expand user stories for travel app features
nuaq2005 Jul 6, 2026
582f2a2
Revise README with project details and features
nuaq2005 Jul 6, 2026
ded0b65
Complete checklist and add reflections for milestone 1
nuaq2005 Jul 6, 2026
4f05cb5
Enhance entity relationship diagram with tables
nuaq2005 Jul 12, 2026
2383a81
included wireframe image, edited lists of tables and wirefreams
nuaq2005 Jul 12, 2026
7b4a51e
Update milestone2 checklist with completed tasks
nuaq2005 Jul 12, 2026
ba91fb8
Complete Reflection section in milestone2.md
nuaq2005 Jul 13, 2026
9a9926a
Adding the skeleton/boilerplate to project so we can easily get start…
jvicaballero Jul 18, 2026
a538092
completed milestone 3 and reflection questions
nuaq2005 Jul 20, 2026
d7c3272
Adding user seeding, methods getCurrentUser and updateCurrentUser (is…
jvicaballero Jul 21, 2026
62e5c14
Adding trips flow, routes, and endpoints. Added helper functions for …
jvicaballero Jul 22, 2026
9ec1968
Merge pull request #21 from ramblrorg/UserTripEndpoints
jvicaballero Jul 23, 2026
76baaf0
Adding Destinations endpoint routes and seed, a couple of added helpe…
jvicaballero Jul 26, 2026
55101be
Merge pull request #22 from ramblrorg/destinationsEndpoint
jvicaballero Jul 26, 2026
d683dc7
establishing what each function of packinglist and expenses should co…
nuaq2005 Jul 26, 2026
70c0204
Added profile UI and sidebar components
Zainu04 Jul 26, 2026
0365cd3
Created functions to create packing items, update their name and togg…
nuaq2005 Jul 27, 2026
b3afc24
Forgot to add the file for the get and post packing item routes
nuaq2005 Jul 27, 2026
950aae5
fixed bugs with GET all packing items and POST generated default items
nuaq2005 Jul 27, 2026
e52f7d0
Milestone 4 goals and reflection, discussing features completed and t…
nuaq2005 Jul 27, 2026
e2ef23b
Milestone 4 goals and reflection, discussing features completed and t…
nuaq2005 Jul 27, 2026
b8bfdc5
Milestone 3 and 4 features added in with gifs
nuaq2005 Jul 27, 2026
2039ec6
Modified table from packing_items to packing_list, and functions all …
nuaq2005 Jul 28, 2026
da0c2eb
edited default packing list, and some formatting
nuaq2005 Jul 30, 2026
5d6da90
Merge pull request #24 from ramblrorg/packingitems-backend
nuaq2005 Jul 30, 2026
3e4189f
setting up endpoints for expenses
nuaq2005 Jul 30, 2026
537de51
Finished endpoints for expenses, set up routes, tested all endpoints
nuaq2005 Jul 31, 2026
7006fd8
Adding activities endpoint. Extensively documented as to why mergePar…
jvicaballero Jul 31, 2026
5c21961
adding helper function getOwnedExpenses() as seperate file, got rid o…
nuaq2005 Jul 31, 2026
7533dbd
Merge pull request #25 from ramblrorg/expenses-backend
nuaq2005 Jul 31, 2026
867ac27
Merge pull request #26 from ramblrorg/activitiesEndpoint
jvicaballero Aug 2, 2026
acf16fb
Address review feedback: extract icons to own files, fix toast timeou…
Zainu04 Aug 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local
.env

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
42 changes: 28 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# [your app name here]
# Ramblr

CodePath WEB103 Final Project

Designed and developed by: [your names here]
Designed and developed by: Zainab Akhtar, Jasper Caballero, Aquila Nuzhat

🔗 Link to deployed app:

## About

### Description and Purpose

[text goes here]
A web platform designed to help travelers plan out every aspect of their trip in one place!

### Inspiration

[text goes here]
As we have experienced the struggle to plan a trip across different platforms for lodging, activities, etc. we shared the sentiment of wanting to able to plan it all in one place. And thus, Ramblr became our theme!

## Tech Stack

Expand All @@ -24,25 +24,39 @@ Backend:

## Features

### [Name of Feature 1]
### 1: User

[short description goes here]
Will store the name, and currency user uses

[gif goes here]
<img src = "./milestones/features/userprofile.gif">

### [Name of Feature 2]
### 2: Trips

[short description goes here]
Will store title, and display dates of trips (Endpoints complete)

[gif goes here]
<img src = "./milestones/features/trip_endpoint.gif">

### [Name of Feature 3]
### 3: Destinations

[short description goes here]
Will store city, country, startdate, enddate, arrival order

[gif goes here]
<img src = "./milestones/features/destinations_endpoint.gif">

### [ADDITIONAL FEATURES GO HERE - ADD ALL FEATURES HERE IN THE FORMAT ABOVE; you will check these off and add gifs as you complete them]
### 4: Activities

Will store the location and type of activity to be part of the trip itinerary

### 4: Expenses

Will add up the costs of all the activities planned + lodging + transportation to give user a summary of trip expenses

### 5: Packing List

Will store all the items the user plans to take (ie. clothes, travel sized lotion, scuba gear)

### 6: Weather API

A tab displaying the weather for all the days of the trip so that the user can plan accordingly

## Installation Instructions

Expand Down
12 changes: 12 additions & 0 deletions client/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ramblr</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="./src/main.jsx"></script>
</body>
</html>
2 changes: 2 additions & 0 deletions client/public/.gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Placeholder file to keep this empty folder tracked by git.
# Delete this once real files are added here.
19 changes: 19 additions & 0 deletions client/src/App.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import React from 'react';
import { useRoutes } from 'react-router-dom';
import Profile from './pages/Profile.jsx';

// TODO: replace with real pages/components (Navigation, Home, Trips, TripDetails, etc.)
const App = () => {
let element = useRoutes([
{ path: '/', element: <h1>Ramblr 🧳 — placeholder home page</h1> },
{ path: '/profile', element: <Profile /> },
]);

return (
<div className="app">
{element}
</div>
);
};

export default App;
2 changes: 2 additions & 0 deletions client/src/assets/.gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Placeholder file to keep this empty folder tracked by git.
# Delete this once real files are added here.
8 changes: 8 additions & 0 deletions client/src/assets/icons/BudgetIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const BudgetIcon = (props) => (
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth="1.5" {...props}>
<circle cx="10" cy="10" r="7" />
<path d="M10 6.5v7M12 8.2c-.4-.6-1.1-1-2-1-1.2 0-2.1.7-2.1 1.6 0 .9.9 1.3 2.1 1.6 1.2.3 2.1.8 2.1 1.7 0 .9-.9 1.6-2.1 1.6-.9 0-1.6-.4-2-1" />
</svg>
);

export default BudgetIcon;
10 changes: 10 additions & 0 deletions client/src/assets/icons/DashboardIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const DashboardIcon = (props) => (
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth="1.5" {...props}>
<rect x="2.5" y="2.5" width="6.5" height="6.5" rx="1.2" />
<rect x="11" y="2.5" width="6.5" height="6.5" rx="1.2" />
<rect x="2.5" y="11" width="6.5" height="6.5" rx="1.2" />
<rect x="11" y="11" width="6.5" height="6.5" rx="1.2" />
</svg>
);

export default DashboardIcon;
10 changes: 10 additions & 0 deletions client/src/assets/icons/ItineraryIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const ItineraryIcon = (props) => (
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth="1.5" {...props}>
<rect x="3" y="3.5" width="14" height="13" rx="1.5" />
<path d="M3 7.5h14" />
<path d="M7 2v3M13 2v3" />
<path d="M6.5 11h2M6.5 13.5h5" />
</svg>
);

export default ItineraryIcon;
9 changes: 9 additions & 0 deletions client/src/assets/icons/LogoutIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const LogoutIcon = (props) => (
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth="1.5" {...props}>
<path d="M8 3.5H4.8A1.3 1.3 0 0 0 3.5 4.8v10.4a1.3 1.3 0 0 0 1.3 1.3H8" />
<path d="M12.5 13.5 16.5 10 12.5 6.5" />
<path d="M7 10h9.3" />
</svg>
);

export default LogoutIcon;
9 changes: 9 additions & 0 deletions client/src/assets/icons/PackingIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const PackingIcon = (props) => (
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth="1.5" {...props}>
<rect x="3.5" y="4" width="13" height="13" rx="1.5" />
<path d="M4 8.5h12" />
<path d="M6.5 11.5l1.3 1.3 2.2-2.6" />
</svg>
);

export default PackingIcon;
8 changes: 8 additions & 0 deletions client/src/assets/icons/ProfileIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const ProfileIcon = (props) => (
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth="1.5" {...props}>
<circle cx="10" cy="7" r="3.2" />
<path d="M3.8 16.5a6.3 6.3 0 0 1 12.4 0" />
</svg>
);

export default ProfileIcon;
9 changes: 9 additions & 0 deletions client/src/assets/icons/TripsIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const TripsIcon = (props) => (
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" strokeWidth="1.5" {...props}>
<rect x="3" y="6.5" width="14" height="9.5" rx="1.5" />
<path d="M7 6.5V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v1.5" />
<path d="M3 11h14" />
</svg>
);

export default TripsIcon;
7 changes: 7 additions & 0 deletions client/src/assets/icons/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export { default as DashboardIcon } from "./DashboardIcon.jsx";
export { default as TripsIcon } from "./TripsIcon.jsx";
export { default as ItineraryIcon } from "./ItineraryIcon.jsx";
export { default as BudgetIcon } from "./BudgetIcon.jsx";
export { default as PackingIcon } from "./PackingIcon.jsx";
export { default as ProfileIcon } from "./ProfileIcon.jsx";
export { default as LogoutIcon } from "./LogoutIcon.jsx";
2 changes: 2 additions & 0 deletions client/src/components/.gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Placeholder file to keep this empty folder tracked by git.
# Delete this once real files are added here.
59 changes: 59 additions & 0 deletions client/src/components/Sidebar.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import { Link, useLocation } from "react-router-dom";
import {
DashboardIcon,
TripsIcon,
ItineraryIcon,
BudgetIcon,
PackingIcon,
ProfileIcon,
LogoutIcon,
} from "../assets/icons/index.js";
import "../css/Sidebar.css";

const NAV_ITEMS = [
{ label: "Dashboard", path: "/dashboard", Icon: DashboardIcon },
{ label: "My Trips", path: "/trips", Icon: TripsIcon },
{ label: "Itinerary", path: "/itinerary", Icon: ItineraryIcon },
{ label: "Budget", path: "/budget", Icon: BudgetIcon },
{ label: "Packing List", path: "/packing-list", Icon: PackingIcon },
{ label: "Profile", path: "/profile", Icon: ProfileIcon },
];

const Sidebar = () => {
const { pathname } = useLocation();

return (
<aside className="sidebar">
<div className="sidebar__brand">
<span className="sidebar__brand-mark" aria-hidden="true">
</span>
<span className="sidebar__brand-name">Ramblr</span>
</div>

<nav className="sidebar__nav">
{NAV_ITEMS.map(({ label, path, Icon }) => (
<Link
key={path}
to={path}
className={`sidebar__link${pathname === path ? " sidebar__link--active" : ""}`}
>
<span className="sidebar__icon">
<Icon />
</span>
{label}
</Link>
))}
</nav>

<button type="button" className="sidebar__link sidebar__logout">
<span className="sidebar__icon">
<LogoutIcon />
</span>
Logout
</button>
</aside>
);
};

export default Sidebar;
2 changes: 2 additions & 0 deletions client/src/css/.gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Placeholder file to keep this empty folder tracked by git.
# Delete this once real files are added here.
Loading