| | --- |
| | 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 |
| |
|
| | 1. Clone this repository: |
| | ```bash |
| | git clone https://github.com/yourusername/nawaf-portfolio.git |
| | cd nawaf-portfolio |
| | ``` |
| |
|
| | 2. Install dependencies: |
| | ```bash |
| | npm install |
| | ``` |
| |
|
| | 3. Start the development server: |
| | ```bash |
| | npm start |
| | ``` |
| |
|
| | ## Deployment on Hugging Face Spaces |
| |
|
| | ### Option 1: Using the Gradio Interface (Recommended) |
| |
|
| | 1. Create a new Space on Hugging Face: |
| | - Go to [Hugging Face Spaces](https://huggingface.co/spaces) |
| | - Click "Create new Space" |
| | - Choose a name (e.g., "nawaf-portfolio") |
| | - Select "Gradio" as the SDK |
| | - Choose "Public" visibility |
| | - Click "Create Space" |
| |
|
| | 2. Push your code to the Space's repository: |
| | ```bash |
| | git remote add space https://huggingface.co/spaces/yourusername/nawaf-portfolio |
| | git push space main |
| | ``` |
| |
|
| | 3. The Space will automatically build and deploy your application. |
| |
|
| | ### Option 2: Using Static React Build |
| |
|
| | 1. Build your React application: |
| | ```bash |
| | npm run build |
| | ``` |
| |
|
| | 2. Create a new Space on Hugging Face with "Static" as the SDK. |
| |
|
| | 3. 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 links |
| | - `education.js` - Academic history |
| | - `experience.js` - Work experience |
| | - `projects.js` - Research projects |
| | - `publications.js` - Academic publications |
| | - `skills.js` - Technical skills |
| | - `blogs.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: |
| |
|
| | 1. Create a new entry in `src/data/blogs.js`: |
| | ```javascript |
| | { |
| | 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`: |
| | ```javascript |
| | { |
| | 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 |
| |
|