Travel App is a web application that allows users to pin their favorite travel destinations on a world map, rate them, review them, and share them with other users. Users can browse through the map to find interesting locations and create a pin to add their favorite places.
- Backend: Node.js, Express.js, REST API
- Frontend: React.js, JavaScript, Mapbox GL JS, react-map-gl
- Database: NoSQL (MongoDB), Mongoose (ODM)
- User registration
- 3D Projection of Globe with interactive pins
- Pin creation, rating, and review functionality
- Double tap to location and create a pin
- User profile page
- Social sharing features
- Clone the repository or download the source code.
- Navigate to the root directory of the project in your terminal.
- Install the required dependencies by running
npm install
. - Set up environment variables by creating a
.env
file in the root directory and adding the necessary variables. - Start the server by running
npm start
ornode index.js
. - Navigate to the client directory by running
cd client
. - Install the frontend dependencies by running
npm install
. - Open your browser and navigate to
http://localhost:3000
. - Register a new account or log in with an existing account.
- Browse the world map/globe and find interesting locations.
- Click on the map to create a pin and rate/review the location.
- See your pinned locations.
The Travel App uses a RESTful API to communicate between the frontend and backend. Here is the documentation for the available endpoints:
- GET "/": Retrieves all pins.
- POST "/": Creates a new pin.
- POST "/registration": Creates a new user account.
- GET "/login": Logs in an existing user.
Here is the URL for API interaction: "proxy": "http://localhost:7800/api"
.
- Mapbox for the interactive map
- react-map-gl for the React bindings for Mapbox GL JS
- bcryptjs for password hashing
- MongoDB for the database management