Personal freelance client portfolio website for Sandeep, built as a split frontend/backend project. The frontend presents the portfolio experience, and the backend serves the testimonials API used by the site.
- Frontend: React + Vite app in frontend/
- Backend: Express + MongoDB API in backend/
- Main content: home, about, experience, certificates, clients, gallery, skills, testimonials, and contact sections
- React 19
- Vite 6
- Tailwind CSS 4
- Framer Motion
- AOS
- React Router
- Express 5
- MongoDB with Mongoose
- frontend/ - client application
- frontend/src/ - React source code
- frontend/public/ - static assets
- backend/ - API server and database models
- README.md - project overview and setup
- Node.js 18 or newer
- npm
- MongoDB connection string for the backend
cd frontend
npm install
npm run devThe frontend development server runs on the default Vite port, usually http://localhost:5173.
Available scripts in frontend/package.json:
npm run dev- start the dev servernpm run build- build for productionnpm run preview- preview the production buildnpm run lint- run ESLint
cd backend
npm install
npm run devThe backend listens on port 3000 by default, as defined in backend/index.js.
Create a backend/.env file with:
DB_URI=your_mongodb_connection_string- Start the backend from backend/.
- Start the frontend from frontend/.
- Open the frontend in your browser and verify the testimonials section loads data from the API.
Note: the frontend currently points testimonials requests to the deployed API URL in frontend/src/api/testimonials.js. If you want to test locally, switch that base URL to http://localhost:3000/api/testimonials.
The backend exposes the testimonials routes under /api/testimonials.
GET /- health messageGET /api/testimonials- fetch all testimonialsPOST /api/testimonials- add a testimonial
Required POST body fields:
personNamecompanyNamereview
- Build the frontend with
npm run buildin frontend/ - Configure the backend environment variables in your hosting provider
- Update the frontend testimonials API base URL if your backend is not using the deployed Render endpoint
- GitHub: palchhinparihar