Skip to content

Fahmi's Project Library πŸ“šΒΆ

A comprehensive online portfolio showcasing projects, certifications, and professional experience, built with MkDocs Material and deployed automatically via GitHub Actions.

🌟 Features¢

  • Modern Documentation Site: Built with MkDocs Material theme for a professional, responsive design
  • Automatic Deployment: CI/CD pipeline using GitHub Actions for seamless updates
  • Project Categorization: Organized sections for Assignment Projects, Academic Research, and Work Samples
  • Interactive Elements: Code highlighting, search functionality, and navigation features
  • Dark/Light Theme: Toggle between themes with custom color schemes
  • Social Integration: Links to GitHub, LinkedIn, Instagram, and Postman profiles

πŸ› οΈ Tech StackΒΆ

  • Documentation Generator: MkDocs with Material Theme
  • Deployment: GitHub Actions + GitHub Pages
  • Styling: Custom CSS with Material Design principles
  • Markdown Extensions: Enhanced with PyMdown Extensions for advanced formatting
  • Version Control: Git with automated revision dates

πŸš€ Quick StartΒΆ

PrerequisitesΒΆ

  • Python 3.x
  • Git

Local DevelopmentΒΆ

  1. Clone the repository

    git clone https://github.com/fahmi-wiradika/fahmi-wiradika.github.io.git
    cd fahmi-wiradika.github.io
    

  2. Install dependencies

    pip install -r requirements.txt
    

  3. Start development server

    mkdocs serve
    

  4. View locally Open your browser to http://127.0.0.1:8000

Making ChangesΒΆ

  1. Edit markdown files in the docs/ directory
  2. Modify mkdocs.yml for configuration changes
  3. Update styles in docs/stylesheet/extra.css if needed
  4. Commit and push changes - GitHub Actions will handle deployment automatically

πŸ“ Project StructureΒΆ

β”œβ”€β”€ .github/workflows/
β”‚   └── ci.yml                 # GitHub Actions workflow
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ index.md              # Homepage content
β”‚   β”œβ”€β”€ introduction/         # About, experience, certifications
β”‚   β”œβ”€β”€ projects/             # Project documentation
β”‚   β”‚   β”œβ”€β”€ assignment/       # freeCodeCamp projects
β”‚   β”‚   β”œβ”€β”€ academic/         # Research projects (coming soon)
β”‚   β”‚   └── workSample/       # Professional work samples
β”‚   └── stylesheet/
β”‚       └── extra.css         # Custom styling
β”œβ”€β”€ mkdocs.yml                # MkDocs configuration
β”œβ”€β”€ requirements.txt          # Python dependencies
└── README.md                 # This file

πŸ”§ ConfigurationΒΆ

MkDocs Configuration (mkdocs.yml)ΒΆ

Key features configured: - Navigation: Hierarchical menu structure - Theme: Material theme with custom colors and icons - Extensions: Code highlighting, tables, admonitions, diagrams - Plugins: Search, auto-references, git revision dates, lightbox gallery

Custom StylingΒΆ

The docs/stylesheet/extra.css file contains: - Custom color schemes for headers, links, and navigation - Responsive table styling - Admonition (callout) box formatting - Image centering utilities

πŸš€ DeploymentΒΆ

Automatic Deployment (CI/CD)ΒΆ

The repository uses GitHub Actions for automatic deployment:

  • Trigger: Push to main or master branch
  • Process:
  • Checkout code
  • Setup Python environment
  • Install dependencies
  • Build and deploy to GitHub Pages
  • Caching: Weekly cache refresh for faster builds

Manual DeploymentΒΆ

If needed, you can deploy manually:

mkdocs gh-deploy --force

πŸ“– Content SectionsΒΆ

IntroductionΒΆ

  • About Fahmi: Personal background and skills
  • Experience: Professional career journey
  • Certification: Technical certifications and achievements

ProjectsΒΆ

  • Assignment Projects: freeCodeCamp certifications
  • Relational Database projects
  • Backend Development & APIs
  • Quality Assurance projects
  • Postman API Test Automation
  • Academic Research: Bachelor's degree research work
  • Work Samples: Professional automation tools and scripts

🎨 Customization¢

Adding New ProjectsΒΆ

  1. Create a new markdown file in the appropriate docs/projects/ subdirectory
  2. Add the page to the navigation in mkdocs.yml
  3. Follow the existing documentation structure and formatting

Modifying ThemesΒΆ

  • Update color schemes in mkdocs.yml under the palette section
  • Modify custom CSS in docs/stylesheet/extra.css
  • Add new icons using Material Design icons

Extending FunctionalityΒΆ

Add new MkDocs plugins in requirements.txt and configure them in mkdocs.yml

πŸ“ Writing DocumentationΒΆ

This portfolio uses extended Markdown with additional features:

  • Code blocks with syntax highlighting
  • Admonitions for notes, warnings, and tips
  • Tables with custom styling
  • Diagrams using Mermaid
  • Tabbed content for organized information
  • Footnotes and cross-references

πŸ“„ LicenseΒΆ

This project is licensed under the MIT License. See the repository for full license details.

πŸ“§ ContactΒΆ

For questions or collaboration opportunities, feel free to reach out through any of the social media links provided in the portfolio.


Built with ❀️ using MkDocs Material and deployed with GitHub Actions