metadata
title: Profile
emoji: π¨
colorFrom: yellow
colorTo: green
sdk: docker
pinned: false
Nawaf Portfolio Website
A modern, responsive personal website built with React for academic and professional portfolios.
Features
- π± Fully responsive design
- π Markdown support for blog posts and publications
- π¨ Modern UI with customizable theme
- π Sections for publications, projects, experience, and education
- π SEO optimized
- π» Easy to deploy on Hugging Face Spaces
Repository Structure
nawaf-portfolio/
βββ .gitignore
βββ README.md
βββ app.py # Gradio server for HF Spaces
βββ package.json # Project dependencies
βββ requirements.txt # Python dependencies for Gradio
βββ public/
β βββ favicon.ico
β βββ index.html
β βββ manifest.json
β βββ assets/
β βββ img/
β βββ profile.jpg
β βββ ...
βββ src/
βββ index.js # Entry point
βββ App.js # Main App component
βββ theme.js # Theme configuration
βββ data/ # All content in JSON format
β βββ about.js
β βββ education.js
β βββ experience.js
β βββ projects.js
β βββ publications.js
β βββ skills.js
β βββ blogs.js
βββ components/ # Reusable components
β βββ Header.js
β βββ Footer.js
β βββ Navigation.js
β βββ EducationCard.js
β βββ ExperienceCard.js
β βββ ProjectCard.js
β βββ PublicationCard.js
β βββ BlogCard.js
β βββ Section.js
β βββ SkillTag.js
βββ pages/ # Page components
βββ Home.js
βββ Publications.js
βββ Projects.js
βββ Blog.js
βββ Resume.js
Installation
- Clone this repository:
git clone https://github.com/yourusername/nawaf-portfolio.git
cd nawaf-portfolio
- Install dependencies:
npm install
- Start the development server:
npm start
Deployment on Hugging Face Spaces
Option 1: Using the Gradio Interface (Recommended)
Create a new Space on Hugging Face:
- Go to Hugging Face Spaces
- Click "Create new Space"
- Choose a name (e.g., "nawaf-portfolio")
- Select "Gradio" as the SDK
- Choose "Public" visibility
- Click "Create Space"
Push your code to the Space's repository:
git remote add space https://huggingface.co/spaces/yourusername/nawaf-portfolio
git push space main
- The Space will automatically build and deploy your application.
Option 2: Using Static React Build
- Build your React application:
npm run build
Create a new Space on Hugging Face with "Static" as the SDK.
Push your build folder to the Space's repository.
Customization
Content
All content is stored in the src/data
directory. Edit these files to update your personal information:
about.js
- Bio, contact info, and social linkseducation.js
- Academic historyexperience.js
- Work experienceprojects.js
- Research projectspublications.js
- Academic publicationsskills.js
- Technical skillsblogs.js
- Blog posts in markdown format
Theme
Edit src/theme.js
to customize colors, fonts, and other styling variables.
Adding Blog Posts
To add a new blog post:
- Create a new entry in
src/data/blogs.js
:
{
id: "unique-id",
title: "Your Blog Title",
date: "March 9, 2025",
excerpt: "Short description of your blog post",
content: `
# Your Blog Title
This is the content of your blog post in Markdown format.
## Subheading
More content here...
`
}
Adding Publications
Add new publications to src/data/publications.js
:
{
id: "unique-id",
title: "Publication Title",
authors: "Author 1, Author 2, et al.",
venue: "Journal or Conference Name",
year: "2025",
link: "https://doi.org/..."
}
License
MIT