Back to .md Directory

Jean-Pierre Niyibizi - Geotechnical Engineer Portfolio

Professional portfolio and business website for Jean-Pierre Niyibizi, a Geotechnical Engineer and Africa Sustainability Advocate. The site features:

May 2, 2026
0 downloads
0 views
ai rag workflow
View source

Jean-Pierre Niyibizi - Geotechnical Engineer Portfolio

Project Overview

Professional portfolio and business website for Jean-Pierre Niyibizi, a Geotechnical Engineer and Africa Sustainability Advocate. The site features:

  • Dynamic content management system
  • Blog and portfolio showcases
  • Contact form for client inquiries
  • Admin dashboard for content updates
  • SQLite database (no external DB required)

Technical Stack

  • Language: PHP 8.2.23
  • Database: SQLite (file-based, portable)
  • Frontend: Bootstrap 5, vanilla JavaScript
  • Architecture: MVC-like pattern with routing

Project Structure

/
├── admin/              # Admin panel (login, dashboard, content management)
├── public/             # Public-facing website
│   ├── assets/        # Images, logos, static files
│   ├── partials/      # Reusable components (nav, footer, sections)
│   └── uploads/       # User-uploaded content
├── db.php             # Database bootstrap & auto-seeding
├── db.sqlite          # SQLite database file
└── router.php         # Custom routing logic

Key Features

  1. Auto-initializing Database: db.php creates and seeds the database on first run
  2. Admin Dashboard: Located at /admin with full CRUD capabilities
  3. Dynamic Sections: Content sections managed via database
  4. Security: CSRF protection, prepared statements, input sanitization
  5. Contact Form: Built-in with message storage

Development Setup (Replit)

The server runs on port 5000 using PHP's built-in server with custom routing:

php -S 0.0.0.0:5000 -t . router.php

Default Admin Credentials

  • Username: admin
  • Password: admin123
  • Note: Change password immediately after first login via the dashboard

Recent Changes

  • 2025-10-09 (Latest): Added Rich Text Editor and SEO Features

    • Integrated TinyMCE rich text editor for blog posts and portfolio content
    • Added SEO fields: URL slugs, meta descriptions, and meta keywords
    • Implemented auto-slug generation from titles (URL-friendly)
    • Redesigned admin dashboard with modal-based editing UI
    • Enhanced blog posts and portfolio management with better UX
    • Database migration: Added meta_description, meta_keywords, and slug columns to posts and portfolio tables
  • 2025-10-09: Fresh GitHub import and Replit environment setup

    • Verified PHP 8.2.23 is installed and working
    • Configured workflow "Server" on port 5000 (0.0.0.0:5000) with router.php
    • Added favicon.ico handler to router.php to serve logo.jpg as favicon
    • Configured autoscale deployment for production
    • Verified all pages work: homepage, blog, portfolio, admin login
    • Confirmed database (db.sqlite) exists and is functional
    • All static assets (images, CSS, JS) are loading correctly

Database Tables

  • users - Admin users and authentication
  • settings - Site-wide configuration
  • sections - Dynamic page sections
  • messages - Contact form submissions
  • posts - Blog posts
  • portfolio - Portfolio projects
  • newsletter_subscribers - Email subscriptions
  • content_elements - Granular content management

Important URLs

  • Homepage: / or /public/index.php
  • Admin Login: /admin/login.php
  • Admin Dashboard: /admin/dashboard.php
  • Blog: /public/blog.php
  • Portfolio: /public/portfolio.php

User Preferences

None documented yet.

Notes

  • No external dependencies (no Composer, no npm)
  • Database auto-creates on first access
  • Uploads directory has security rules via .htaccess
  • All forms include CSRF protection

Related Documents