A full-stack web application for managing and exploring travel destinations around the world. Built with React.js, Node.js, Express, and MySQL.
| Layer | Technology |
|---|---|
| Frontend | React.js (Hooks, State) |
| Backend | Node.js + Express |
| Database | MySQL |
| HTTP Client | Axios |
wanderers/
├── spring-boot-wanderers.zip # Java Spring Boot version (alternative implementation)
├── client/ # React frontend
│ ├── public/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── services/ # API service layer
│ │ └── App.js # Main app component
│ └── package.json
├── server/ # Node.js backend
│ ├── config/ # Database configuration
│ ├── controllers/ # Business logic
│ ├── routes/ # API routes
│ ├── database.sql # SQL schema
│ └── server.js # Entry point
└── package.json
git clone https://github.com/ManikandanM-7/Wanderers.git
cd Wanderers
# Login to MySQL
mysql -u root -p
# Run the schema
source server/database.sql
Update server/.env:
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password_here
DB_NAME=wanderers_db
PORT=5000
# Install server dependencies
cd server
npm install
# Install client dependencies
cd ../client
npm install
Option A - Run separately:
# Terminal 1 - Start backend
cd server
npm start
# Terminal 2 - Start frontend
cd client
npm start
Option B - Run concurrently:
npm run dev
Frontend: http://localhost:3000
Backend API: http://localhost:5000
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/destinations |
Get all destinations |
| GET | /api/destinations/:id |
Get destination by ID |
| GET | /api/destinations/category/:cat |
Filter by category |
| POST | /api/destinations |
Create new destination |
| PUT | /api/destinations/:id |
Update destination |
| DELETE | /api/destinations/:id |
Delete destination |
{
"name": "Santorini",
"country": "Greece",
"description": "Beautiful Greek island with white-washed buildings and blue-domed churches.",
"category": "Beach",
"rating": 4.9
}
A Java Spring Boot implementation is also available:
unzip spring-boot-wanderers.zip
cd spring-boot-wanderers
mvn spring-boot:run
Manikandan Manickam
MIT License