This is a collaborating web application project called "ForeMap - travel buddy" that helps users plan trips by providing information on destinations, weather forecasts, and travel itineraries Live page here
Backend: serve as an API with endpoints for:
/api/destinationsAll popular destinations: will return name and image of each destination/api/destination/:citySingle destinations: will fetch from various APIs and return infos about the destination/api/weather/:citySingle destination weather: will return weather info of the destination/api/coordinates/:cityReturn city center coordinates and popular attraction coordinates/api/destination/:city/countryReturn info about the country of origin of the destination
Frontend: focus on user experience with beautiful design, animations, and mobile responsiveness Homepage
- Search bar for all destinations
- Destination roullete: give user 3 mystery destination cards to choose
- Popular destinations: a grid of recommended popular tourist destiantion
- Map: show all popular destinations in the world map for user to choose
Destination page:
- Landing section with a photo, short description of the city and Wikipedia link
- Attraction section feature popular attractions with names, pictures an wiki links
- Info and weather section: display helpful information for tourist purpose
- Itinerary planner with attraction locations show on map, route and suggested visit time
Languages:
- PHP
- Javascript
- HTML
- CSS
Libraries and frameworks: Backend:
- Symfony7
- Nelmio Cors Bundle
- Http-client
Frontend:
- React Vite
- Axios
- React-router-dom
- React/leaflet (map intergration)
- tsparticles (animation)
- ldrs (loading screen)
To host project locally
- Clone the project:
git clone https://github.com/alextrandev/fullstack_travel_buddy.git - Change to frontend directory:
cd fullstack_travel_buddy/frontend - Install frontend dependencies:
npm i - Host the frontend in local server:
npm run dev -- --port=5173 - Open a new terminal, cd to backend folder.
- Install backend dependencies:
composer i - Host the backend in local server:
symfony serve --port=8000
Frontend should run on local port: http://localhost:5173
Backend should run on local port: https://127.0.0.1:8000
Homepage

Homepage destination roullette

Mobile version
| Homepage | Destination page |
|---|---|
![]() |
![]() |
To setup local development environment
- Clone the project:
git clone https://github.com/alextrandev/fullstack_travel_buddy.git - Change to frontend directory:
cd fullstack_travel_buddy/frontend - Install frontend dependencies:
npm i - Host the frontend in local server:
npm run dev -- --port=5173. If it show port error, close all terminal and stop docker desktop containers - Open a new terminal, cd to backend folder.
- Install backend dependencies:
composer i - Host the backend in local server:
symfony serve --port=8000. If it show port error, close all terminal and stop docker desktop containers
Frontend should run on local port: http://localhost:5173
Backend should run on local port: https://127.0.0.1:8000
Before working on a feature
- Remember to pull the changes from main branch
git pull origin main - Create a new branch with your name and the feature
git checkout -b Branch-NameBranch name should be:PurposeOfTheBranch/NameOfTheBacklogItem-some-descriptionExample:
- Working on a new feature FE-003
git checkout -b feature/FE-003-nav-bar - Fix a bug BF-011:
git checkout -b bugfix/BF-011-nav-bar-have-too-much-padding
- Finish the coding and commit the changes
- Push to online repo
git push origin Branch-Nameuse the same branch name here. Never push to main or any other branches - Go to the github repo
- Find the Create Pull Request button, add a reviewer and create the request.
- Wait for the request to be accepted. In the meantime, you can create a new branch and work on something else.
Testing the pull request before merging
- Fetch changes
git fetch origin - Checkout the branch
git checkout -b branch-name origin/branch-name - Reinstall dependencies in both frontend and backend
npm iandcomposer i - Host both front and backend if haven't
- Test the changes
- If everything is ok, go to github and merge the request
Mentor and Client
Dev team
- Alex Tran - Fullstack developer
- Arina Belugina - Frontend developer
- Sheila Onyango - Frontend developer


