Skip to content

sumu9897/sumon-enterprise-frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

17 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—๏ธ M/S Sumon Enterprise โ€” Construction Portfolio

M/S Sumon Enterprise

Live Demo GitHub React Tailwind CSS Vercel

A professional construction company portfolio website built with React and Tailwind CSS.
Showcasing 25+ years of expertise and 80+ completed projects across Bangladesh.


๐Ÿ“ธ Screenshots

Light Mode Dark Mode
Light Mode Dark Mode

โœจ Features

  • ๐ŸŒ— Dark / Light Mode โ€” Toggle with localStorage persistence and OS preference detection
  • ๐Ÿ  Home Page โ€” Animated hero, scroll-triggered stats counter, featured projects, services overview
  • ๐Ÿ“‹ Projects Page โ€” Filter by status, company & search with client-side pagination
  • ๐Ÿ” Project Detail โ€” Full image lightbox gallery, specifications, location map
  • ๐Ÿ–ผ๏ธ Gallery โ€” Filterable image gallery across all projects with lightbox
  • ๐Ÿ“– About Page โ€” Company story, animated milestone timeline, core values, mission & vision
  • โš™๏ธ Services Page โ€” Alternating image/text layout, work process steps
  • ๐Ÿ“ž Contact Page โ€” Info cards, Google Maps embed, office hours with today highlight
  • ๐Ÿ“ฑ Fully Responsive โ€” Mobile, tablet, and desktop optimized
  • โšก No Backend โ€” All data served from a static JSON file
  • ๐ŸŽจ Polished Animations โ€” Staggered hero reveals, hover lifts, gold shimmer effects

๐Ÿ› ๏ธ Tech Stack

Category Technologies
Frontend React 18, React Router DOM v6
Styling Tailwind CSS, Custom CSS Animations
UI Components Swiper.js, Yet Another React Lightbox, React Icons
Data Static JSON (no backend required)
Hosting Vercel

๐Ÿ“ Project Structure

src/
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ common/
โ”‚   โ”‚   โ”œโ”€โ”€ Header.jsx        # Sticky nav with dark/light toggle
โ”‚   โ”‚   โ”œโ”€โ”€ Footer.jsx
โ”‚   โ”‚   โ””โ”€โ”€ LoadingSpinner.jsx
โ”œโ”€โ”€ pages/
โ”‚   โ”œโ”€โ”€ Home.jsx              # Landing page with hero & stats
โ”‚   โ”œโ”€โ”€ About.jsx             # Company story & milestones
โ”‚   โ”œโ”€โ”€ Services.jsx          # Services with alternating layout
โ”‚   โ”œโ”€โ”€ Projects.jsx          # Filterable project grid
โ”‚   โ”œโ”€โ”€ ProjectDetail.jsx     # Single project with lightbox
โ”‚   โ”œโ”€โ”€ Gallery.jsx           # Full image gallery
โ”‚   โ””โ”€โ”€ Contact.jsx           # Contact info & map
โ”œโ”€โ”€ data/
โ”‚   โ””โ”€โ”€ projects.json         # All project data (images, specs, etc.)
โ””โ”€โ”€ services/
    โ””โ”€โ”€ api.js                # (Legacy โ€” no longer used)

๐Ÿš€ Getting Started

Prerequisites

  • Node.js >= 16
  • npm or yarn

Installation

# 1. Clone the repository
git clone https://github.com/sumu9897/sumon-enterprise-frontend.git

# 2. Navigate to the project directory
cd sumon-enterprise-frontend

# 3. Install dependencies
npm install

# 4. Start the development server
npm run dev

The app will be running at http://localhost:5173

Build for Production

npm run build

๐Ÿ“Š Data Management

All project data lives in src/data/projects.json. To add a new project, append an entry following this structure:

{
  "id": 17,
  "company": "Company Name",
  "projectName": "Project Name",
  "slug": "project-name-slug",
  "description": "Short description of the project",
  "specifications": {
    "floors": "G+9",
    "floorArea": "3000sft per floor",
    "type": "Residential",
    "finish": "Fair-Face"
  },
  "address": {
    "plot": "123",
    "road": "5",
    "block": "A",
    "area": "Bashundhara",
    "city": "Dhaka"
  },
  "status": "Ongoing",
  "startDate": "2025",
  "finishDate": null,
  "images": [
    { "url": "https://i.ibb.co/XXXXXXXX/image.jpg" }
  ]
}

Image hosting: Upload images to ImgBB and use the Direct Link (format: https://i.ibb.co/XXXXXXXX/image.jpg). Make sure the domain is i.ibb.co โ€” NOT i.ibb.co.com.


๐ŸŒ— Dark / Light Mode

The theme system uses a dark class on <html> toggled by the Header component and stored in localStorage. All pages use a shared useDarkMode() hook:

const useDarkMode = () => {
  const [dark, setDark] = useState(() =>
    document.documentElement.classList.contains('dark')
  );
  useEffect(() => {
    const observer = new MutationObserver(() =>
      setDark(document.documentElement.classList.contains('dark'))
    );
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ['class'],
    });
    return () => observer.disconnect();
  }, []);
  return dark;
};

Make sure your tailwind.config.js has:

module.exports = {
  darkMode: 'class',
  // ...
}

๐Ÿ“ฆ Key Dependencies

{
  "react": "^18.0.0",
  "react-router-dom": "^6.0.0",
  "tailwindcss": "^3.0.0",
  "yet-another-react-lightbox": "^3.0.0",
  "swiper": "^11.0.0",
  "react-icons": "^4.0.0",
  "react-toastify": "^9.0.0"
}

๐Ÿ—บ๏ธ Pages Overview

Route Page Description
/ Home Hero, stats, featured projects, services, CTA
/about About Story, timeline, values, mission/vision
/services Services 4 services with features and process
/projects Projects Filterable, paginated project grid
/projects/:slug Project Detail Images, specs, map, CTA
/gallery Gallery All project images with lightbox
/contact Contact Info cards, map, office hours

๐Ÿ”ฎ Future Plans

  • Admin panel / CMS for managing projects without editing JSON
  • Contact form with email via Brevo (Sendinblue) API
  • Blog section for construction tips and company news
  • Image optimization with WebP format and lazy loading
  • Google Analytics integration
  • 3D building visualization with Three.js for featured projects

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

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

๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿ‘จโ€๐Ÿ’ป Author

Sumon โ€” @sumu9897

โญ If you found this project helpful, please give it a star! โญ

GitHub stars

About

A professional construction company portfolio website built with React and Tailwind CSS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors