A modern, responsive portfolio application built with cutting-edge technologies
- π¨ Modern UI/UX: Beautiful, dark-themed interface with smooth animations
- π± Fully Responsive: Optimized for desktop, tablet, and mobile devices
- β‘ Fast Performance: Server-side rendering and optimized bundle sizes
- π Secure: JWT authentication and secure API endpoints
- π Interactive: Smooth animations with Framer Motion
- π§© Component Library: Built with Radix UI components
- π Analytics Ready: Easy integration with analytics platforms
- π SEO Optimized: Meta tags and structured data for better search visibility
π¦ React 19.0.0 - Modern React with latest features
π¨ Tailwind CSS 3.4.17 - Utility-first CSS framework
π§© Radix UI - Accessible component primitives
β¨ Framer Motion 12.23 - Smooth animations and transitions
π± React Router 7.5.1 - Client-side routing
πͺ Lucide React 0.507 - Beautiful icon library
π Recharts - Data visualization (if needed)
π― React Hook Form 7.56 - Form validation and handling
π FastAPI 0.110.1 - High-performance Python web framework
π Python 3.11+ - Modern Python with type hints
ποΈ MongoDB 4.5.0 - NoSQL database
β‘ Motor 3.3.1 - Async MongoDB driver
π JWT & Passlib - Authentication and security
π Pydantic 2.6.4 - Data validation with type safety
π Uvicorn 0.25.0 - ASGI server for production
π§ͺ Pytest 8.0.0 - Testing framework
π― Black & isort - Code formatting
π MyPy - Static type checking
π ESLint & Prettier - Frontend code quality
π§ CRACO - Create React App configuration
Ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- Python (v3.11 or higher)
- MongoDB (v4.4 or higher)
- Git
-
Clone the repository
git clone https://github.com/MRSHAKILS/Portfolio.git cd Portfolio -
Backend Setup
# Navigate to backend directory cd backend # Create virtual environment python -m venv .venv # Activate virtual environment # Windows: .venv\Scripts\activate # macOS/Linux: source .venv/bin/activate # Install dependencies pip install -r requirements.txt
-
Frontend Setup
# Navigate to frontend directory cd ../frontend # Install dependencies npm install --legacy-peer-deps
-
Environment Configuration
# Backend (.env) cp backend/.env.example backend/.env # Frontend (.env) cp frontend/.env.example frontend/.env
Update the environment variables:
# Backend .env MONGO_URL=mongodb://localhost:27017 DB_NAME=portfolio_db JWT_SECRET=your-super-secret-jwt-key CORS_ORIGINS=http://localhost:3000,http://localhost:3001 # Frontend .env REACT_APP_BACKEND_URL=http://localhost:8000
-
Install all dependencies:
npm run install:all
-
Run both frontend and backend together:
npm run dev
-
Start the Backend Server
npm run dev:backend
Or manually:
cd backend python -m uvicorn server:app --reload --host 0.0.0.0 --port 8000 -
Start the Frontend Development Server (in another terminal)
npm run dev:frontend
Or manually:
cd frontend npm start
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
If you encounter issues:
-
Frontend dependency conflicts:
cd frontend rm -rf node_modules package-lock.json npm install --legacy-peer-deps -
Backend dependencies:
cd backend pip install -r requirements.txt -
Clean and reinstall everything:
npm run clean npm run install:all
π Portfolio/
βββ π backend/ # FastAPI backend
β βββ π server.py # Main FastAPI application
β βββ π requirements.txt # Python dependencies
β βββ π .env # Environment variables
β βββ π __pycache__/ # Python cache files
βββ π frontend/ # React frontend
β βββ π public/ # Static files
β βββ π src/ # Source code
β β βββ π components/ # React components
β β β βββ π About.jsx # About section
β β β βββ π Hero.jsx # Hero section
β β β βββ π Projects.jsx # Projects showcase
β β β βββ π ui/ # Reusable UI components
β β βββ π data/ # Mock data
β β βββ π hooks/ # Custom React hooks
β β βββ π lib/ # Utility functions
β βββ π package.json # Node.js dependencies
β βββ π tailwind.config.js # Tailwind configuration
βββ π tests/ # Test files
βββ π README.md # Project documentation
βββ π .gitignore # Git ignore rules
The portfolio uses CSS custom properties for easy theming:
:root {
--color-bg-primary: #0a0a0b;
--color-bg-secondary: #1a1a1b;
--color-accent-primary: #00d4ff;
--color-text-primary: #ffffff;
/* ... more variables */
}All UI components are built with Radix UI and styled with Tailwind CSS:
// Example component usage
import { Button } from "@/components/ui/button";
import { Card } from "@/components/ui/card";
export function ProjectCard({ project }) {
return (
<Card className="bg-card hover:bg-accent transition-colors">
<h3>{project.title}</h3>
<Button variant="outline">View Project</Button>
</Card>
);
}cd backend
pytest tests/ -vcd frontend
npm testFrontend:
cd frontend
npm run buildBackend:
cd backend
pip install -r requirements.txt
python -m uvicorn server:app --host 0.0.0.0 --port 8000- Frontend: Vercel, Netlify, GitHub Pages
- Backend: Railway, Heroku, DigitalOcean
- Database: MongoDB Atlas, Railway MongoDB
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
MRSHAKILS - @MRSHAKILS
Project Link: https://github.com/MRSHAKILS/Portfolio