Welcome to EXPC Group

At EXPC Group, we are your trusted partner in project cargo solutions and innovative logistics for complex industries. As a leader in logistics and infrastructure, we provide end-to-end project management with a focus on precision, safety, and efficiency. From planning to final delivery, our expert team crafts tailored solutions to overcome challenges and deliver results. With a strong presence across Vietnam, Cambodia, and beyond, we support global clients in renewable energy, power infrastructure, and large-scale construction projects. Choose EXPC Group—where innovation meets execution, turning your vision into reality.

JMA

A pioneer in connecting Vietnam and Taiwan through cutting-edge advancements in offshore wind energy. JMA is dedicated to sustainable energy solutions, contributing to the growth of clean energy infrastructure while promoting innovation in renewable energy logistics.

CPL

Founded in 2015, CPL stands at the forefront of construction and infrastructure solutions in Cambodia, delivering projects that adhere to international standards of precision, quality, and safety. From large-scale developments to specialized infrastructure projects, CPL is synonymous with reliability and excellence.

PET-C

Specializing in the construction of power plants and wind farms, PET-C offers end-to-end services, including electrical installations and infrastructure development. With a commitment to operational excellence, PET-C is a trusted partner in powering the future with sustainable energy solutions.

EXPC Vietnam

Delivering strategic logistics and project cargo management to support large-scale projects across industries. EXPC Vietnam is committed to enhancing global connectivity, offering innovative solutions that meet the needs of our clients.

EXPC Cambodia

Expanding our expertise in Southeast Asia, EXPC Cambodia provides comprehensive logistics solutions tailored to the region’s unique requirements, ensuring seamless project execution for local and international clients.
EXPC GROUP - Who we are
JMA
CPL
PET-C
EXPC VN
EXPC Cambodia

Mission

Founded in Canada, EXPC Group is driven by a global vision to lead in project logistics and infrastructure solutions across industries. With a strong presence in international markets, we specialize in delivering exceptional services to Asia’s thriving industries, providing tailored solutions that drive progress. Our commitment to innovation, sustainability, safety, precision, and partnership empowers clients with seamless project execution. From renewable energy transitions to infrastructure development, we foster economic growth and set new standards of excellence—creating a lasting impact for our clients, communities, and future generations.

Vision

At EXPC Group, we envision a future where innovative project logistics and infrastructure solutions propel industries forward sustainably and efficiently. By harnessing our global expertise and deep commitment to quality, we aim to be the unparalleled partner for clients in Asia and beyond, driving transformative progress in renewable energy and infrastructure development. Together, we strive to create a brighter, more sustainable future for communities and generations to come.

Core Values

Innovation
We embrace innovation at the heart of our operations. We continuously develop cutting-edge solutions to meet the evolving needs of our clients, ensuring that we stay ahead in the logistics industry.
Reliability
Reliability is a cornerstone of our business. We are committed to delivering consistent, high-quality results that our clients can depend on, fostering trust and long-term partnerships.
Customer-Centric Solutions
Our dedication to customer-centric solutions drives us to prioritize our clients’ unique challenges. We tailor our services to provide the best possible outcomes for their projects, ensuring satisfaction and success.

Meet the team

Director
Chang Shuo Hsien
Board of Members
Jenny Nguyen
Board of Members
Quynh Vo
Board of Members
Heang Ly
Board of Members
Thun Ratanak

Office

Cambodia

Chip Mong Land 50m #72, P02 st, Sangkat Prey Sor, Khan Dang Kao, Phnom Penh, Cambodia

Ho Chi Minh

27th floor, Victory Tower, 12 Tan Trao, Tan Phu Ward, District 7, HCMC, Vietnam

Taiwan

2F, No. 15, Fulong St, Houlong Vil, West Dist, Taichung City, Taiwan

Vung tau

4th Floor, No. 2, Nguyen Huu Canh Street, Thang Nhat Ward, Vung Tau City, Viet Nam
document.addEventListener("DOMContentLoaded", function () {
    const sections = document.querySelectorAll("#section-0, #section-1, #section-2, #section-3, #section-4, #section-5");
    let sectionPositions = [];

    // Cập nhật vị trí từng section (nếu chiều cao section thay đổi)
    function updateSectionPositions() {
        sectionPositions = Array.from(sections).map((section) => {
            const sectionHeight = section.offsetHeight; // Lấy chiều cao thực tế của section
            const isSection0 = section.id === "section-0"; // Kiểm tra riêng section-0
            const isSpecialSection = ["section-2", "section-4", "section-5"].includes(section.id);
            const isRegularSection = ["section-1", "section-3"].includes(section.id);
            let offsetAdjustment = 0; // Giá trị mặc định

            if (isSection0) {
                // Không căn giữa, giữ vị trí mặc định
                return section.offsetTop;
            } else if (isSpecialSection) {
                offsetAdjustment = -30; // Điều chỉnh offset cho các section đặc biệt
            } else if (isRegularSection) {
                offsetAdjustment = -30; // Điều chỉnh offset cho các section thông thường
            }

            // Tính toán vị trí offset căn giữa
            const offset = section.offsetTop - (window.innerHeight - sectionHeight) / 2 + offsetAdjustment;
            return offset;
        });
    }

    // Gọi hàm cập nhật khi DOMContentLoaded
    updateSectionPositions();

    let isScrolling = false; // Trạng thái đang cuộn
    const scrollDuration = 500; // Thời gian cuộn (ms)

    // Hàm cuộn đến vị trí mục tiêu
    function scrollToSection(targetIndex) {
        if (targetIndex < 0 || targetIndex >= sectionPositions.length) return; // Kiểm tra giới hạn index

        window.scrollTo({
            top: sectionPositions[targetIndex],
            behavior: "smooth",
        });

        // Đợi cuộn hoàn tất trước khi cho phép cuộn tiếp
        setTimeout(() => {
            isScrolling = false;
        }, scrollDuration);
    }

    // Lắng nghe sự kiện cuộn chuột
    window.addEventListener("wheel", function (event) {
        if (isScrolling) return; // Nếu đang cuộn, bỏ qua sự kiện mới

        isScrolling = true;
        const currentScroll = window.scrollY + window.innerHeight / 2; // Tính vị trí hiện tại dựa vào trung tâm màn hình
        const direction = event.deltaY > 0 ? 1 : -1; // Kiểm tra hướng cuộn (xuống hoặc lên)

        // Tìm section hiện tại
        let currentIndex = sectionPositions.findIndex((pos, i) => {
            const nextPos = sectionPositions[i + 1] || Infinity;
            return currentScroll >= pos && currentScroll < nextPos;
        });

        if (currentIndex === -1) currentIndex = 0; // Phòng trường hợp không tìm thấy index

        // Tính index mục tiêu
        let targetIndex;
        if (direction === 1) {
            // Cuộn xuống: Tìm section tiếp theo
            targetIndex = currentIndex + 1 < sectionPositions.length ? currentIndex + 1 : currentIndex;
        } else if (direction === -1) {
            // Cuộn lên: Tìm section trước đó
            targetIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : currentIndex;
        }

        // Cuộn đến section mục tiêu
        scrollToSection(targetIndex);
    });

    // Cập nhật lại vị trí section khi thay đổi kích thước cửa sổ
    window.addEventListener("resize", updateSectionPositions);

    // Khi load trang, cuộn đến section gần nhất
    const currentScroll = window.scrollY + window.innerHeight / 2;
    const closestIndex = sectionPositions.findIndex((pos, i) => {
        const nextPos = sectionPositions[i + 1] || Infinity;
        return currentScroll >= pos && currentScroll < nextPos;
    });

    if (closestIndex !== -1) {
        scrollToSection(closestIndex);
    }
});