Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

My Portfolio

A full-stack personal portfolio showcasing my projects, skills, and interests — built with modern web technologies and deployed to production.

🌐 Live Site:
https://my-portfolio-nine-chi-cm2sfdh0gx.vercel.app


Tech Stack

Frontend

  • React (Vite)
  • Tailwind CSS
  • React Router
  • Deployed on Vercel

Backend

  • FastAPI
  • Pydantic
  • REST APIs
  • Deployed on Render

Features

  • Responsive, minimal UI
  • Project showcase with detailed descriptions
  • Contact form with backend validation
  • Live deployment (frontend + backend)
  • Environment-based configuration (local vs production)

Project Structure

my-portfolio/ ├── client/ # React + Vite frontend │ ├── src/ │ ├── public/ │ └── vite.config.js │ ├── server/ # FastAPI backend │ ├── main.py │ ├── requirements.txt │ └── render_start.sh │ └── README.md

yaml Copy code


Running Locally

1️⃣ Clone the repository

git clone https://github.com/AdarshAlex751/My_Portfolio.git
cd My_Portfolio
2️⃣ Backend setup (FastAPI)


cd server
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python -m uvicorn main:app --reload --port 8000
Backend will run at:

cpp
Copy code
http://127.0.0.1:8000
3️⃣ Frontend setup (React)

cd client
npm install
npm run dev
Frontend will run at:


http://localhost:5173
4️⃣ Environment Variables
Create a .env file inside client/:


VITE_API_BASE=http://127.0.0.1:8000
For production, this variable is set in Vercel to point to the Render backend.

Deployment
Frontend (Vercel)
Root directory: client

Build command: npm run build

Output directory: dist

Environment variable:


VITE_API_BASE=https://my-portfolio-ed4q.onrender.com
Backend (Render)
Root directory: server

Build command:


pip install -r requirements.txt
Start command:


bash render_start.sh

Contact Form

The contact form:

Sends validated data to the FastAPI backend

Uses CORS-restricted production endpoints

Prints messages to server logs (can be extended to email or DB)

Future Improvements

Email notifications for contact submissions

Database-backed message storage

Admin dashboard

Custom domain

Analytics

Releases

Packages

Contributors

Languages