Skip to content

MRSHAKILS/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

62 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Modern Portfolio Application

Portfolio Banner

React FastAPI TypeScript TailwindCSS MongoDB

A modern, responsive portfolio application built with cutting-edge technologies

🌟 Live Demo | πŸ“– Documentation | πŸš€ Getting Started


✨ Features


Modern React
React 19 with hooks & functional components

FastAPI Backend
High-performance async Python API

Tailwind CSS
Utility-first styling framework

MongoDB
NoSQL database with async operations

Responsive Design
Mobile-first responsive layouts

Performance
Optimized for speed and SEO

🎯 Key Features

  • 🎨 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

πŸ› οΈ Tech Stack

Frontend

πŸ“¦ 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

Backend

πŸš€ 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

Development Tools

πŸ§ͺ Pytest 8.0.0         - Testing framework
🎯 Black & isort         - Code formatting
πŸ” MyPy                  - Static type checking
πŸ“ ESLint & Prettier     - Frontend code quality
πŸ”§ CRACO                 - Create React App configuration

πŸš€ Getting Started

Prerequisites

Ensure you have the following installed:

  • Node.js (v18.0.0 or higher)
  • Python (v3.11 or higher)
  • MongoDB (v4.4 or higher)
  • Git

πŸ“₯ Installation

  1. Clone the repository

    git clone https://github.com/MRSHAKILS/Portfolio.git
    cd Portfolio
  2. 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
  3. Frontend Setup

    # Navigate to frontend directory
    cd ../frontend
    
    # Install dependencies
    npm install --legacy-peer-deps
  4. 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

πŸƒβ€β™‚οΈ Running the Application

πŸš€ Quick Start (Recommended)

  1. Install all dependencies:

    npm run install:all
  2. Run both frontend and backend together:

    npm run dev

πŸ”§ Manual Start (Alternative)

  1. 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
  2. Start the Frontend Development Server (in another terminal)

    npm run dev:frontend

    Or manually:

    cd frontend
    npm start

🌐 Access the Application

πŸ› Troubleshooting

If you encounter issues:

  1. Frontend dependency conflicts:

    cd frontend
    rm -rf node_modules package-lock.json
    npm install --legacy-peer-deps
  2. Backend dependencies:

    cd backend
    pip install -r requirements.txt
  3. Clean and reinstall everything:

    npm run clean
    npm run install:all

πŸ“± Screenshots

πŸ–₯️ Desktop View

Desktop View

πŸ“± Mobile View

Mobile View

🎨 Dark Theme

Dark Theme


πŸ—οΈ Project Structure

πŸ“ 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

🎨 Customization

🎨 Theming

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 */
}

🧩 Components

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>
  );
}

πŸ§ͺ Testing

Backend Testing

cd backend
pytest tests/ -v

Frontend Testing

cd frontend
npm test

πŸš€ Deployment

πŸ“¦ Build for Production

Frontend:

cd frontend
npm run build

Backend:

cd backend
pip install -r requirements.txt
python -m uvicorn server:app --host 0.0.0.0 --port 8000

🌐 Deployment Options

  • Frontend: Vercel, Netlify, GitHub Pages
  • Backend: Railway, Heroku, DigitalOcean
  • Database: MongoDB Atlas, Railway MongoDB

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ“ž Contact

MRSHAKILS - @MRSHAKILS

Project Link: https://github.com/MRSHAKILS/Portfolio


🌟 Show your support

Give a ⭐️ if this project helped you!

Made with ❀️ Powered by React Built with FastAPI

About

My own portfolio

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors