Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Thursday, July 23
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • More
      • Sports
      • Politics
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Travel»Ronald Ngala Utalii College to open doors in September after 12-year wait
    Travel

    Ronald Ngala Utalii College to open doors in September after 12-year wait

    Martin AkumaBy Martin AkumaJuly 23, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 24

    Ronald Ngala Utalii College to open doors in September after 12-year wait

    A view of the Ronald Ngala Vipingo Utalii College in Kilifi South, which is now 95 per cent complete and on track to welcome its first 1,000 students from September 2026. (Photo: X/Gideon Mung’aro)

    Listen to article

    3 min listen
    Audio reading is not supported on this browser.
    Ready

    Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

    Sudan blames suspension of Ethiopian electricity imports among factors driving nationwide power cuts

    Addis Standard

     · 

    2 minutes agoRead nextOpens a fresh page.

    The institution will offer diploma and short-term courses in hospitality, catering, housekeeping, seafaring and management.

    The Ronald Ngala Utalii College in Kilifi County will officially admit its first cohort of 1,000 students on September 1, marking the operationalisation of the long-awaited tourism training institution more than a decade after its construction began.
    This was announced by Tourism Principal Secretary Julius Bitok on Thursday, who declared the college 95 per cent ready to receive students, with final works being fast-tracked ahead of the opening.
    “I can confirm that we are 95 per cent ready to welcome the first cohort of 1000 students on September 1. We have the necessary arrangements in place to make this a reality,” he said while on a tour of the facility on Thursday.
    Tourism PS Julius Bitok at the Ronald Ngala Utalii College on July 23, 2026. (Photo: Courtesy)
    The institution will offer diploma and short-term courses in hospitality, catering, housekeeping, seafaring and management, and is expected to strengthen Kenya’s tourism workforce while supporting the government‘s target of attracting five million international visitors annually by 2028.
    At the same time, once fully developed, Bitok said the 40-acre campus designed as an advanced model of the Utalii College will have the capacity to accommodate 4,000 students.

    Latest Stories

    • Sudan blames suspension of Ethiopian electricity imports among factors driving nationwide power cuts
    • Tigray displacement sites see renewed arrivals as aid gaps deepen
    • Nakuru court acquits Senator Jackson Mandago in Sh1.1 billion Uasin Gishu scholarship case
    • CECAFA boss backs Rwanda to host next three Kagame Cup editions

    The PS regretted the long delay in its operationalisation and added that the government was contemplating inviting an investor under public-private-partnerships (PPP) to expedite the opening of the hotel that will also offer practical training to learners.
    Notably, the college’s opening is expected to create at least 1,000 direct and indirect jobs and boost the host community’s economy.
    It will also complement the Kenyan tourism sector’s drive to double the annual number of tourists into the country.
    “We are committed to ensuring that we build capacity for tourism and hospitality. The opening will go a long way in ensuring that we meet our target of five million tourists by 2028,” the PS added.
    A section of Ronald Ngala Utalii College. (Photo: Courtesy)
    Kilifi County Governor Gideon Mung’aro said the opening of the college will be good news for job seekers eyeing the blue economy and who need relevant certification.
    “We have had issues as agents come here to recruit seafarers. The last time I had a big team who wanted 600 people, but they went with only 59 due to a lack of certification,” the governor said.
    The two further appealed to leaders to refrain from utterances that could harm the tourism industry.
    “We urge leaders to weigh their words when they are talking about tourism as it is a very delicate product. What we’ve built in 10 years can be destroyed in a single day by a reckless statement,” said the governor.

    Other Topics To Read

    Top Stories Today

    • Court acquits Senator Mandago in Sh1.1 billion scholarship scandal case
    • Ronald Ngala Utalii College to open doors in September after 12-year wait
    • Coast unveils big innovation push to create jobs for 2 million young people
    • High Court nullifies Ruto’s Presidential Task Force on Public Debt Audit
    • High Court allows National Infrastructure Fund Act to proceed, orders strict judicial oversight
    • CS Miano ordered to appear before Senate on August 4 after missing Bomas project hearing

    `;
    }

    return “;
    }

    function commentActionsMarkup(comment, canComment) {
    const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
    const likeCount = Number(comment.like_count || 0) > 0
    ? “
    : ”;

    const likeButton = canComment && comment.status === ‘approved’
    ? “
    : “;

    const replyButton = canComment && comment.status === ‘approved’
    ? “
    : ”;

    return `

    `;
    }

    function commentMarkup(comment, canComment, isReply = false) {
    const pendingBadge = comment.status && comment.status !== ‘approved’
    ? “
    : ”;

    const edited = comment.is_edited
    ? “
    : ”;

    const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
    ? `

    `
    : “;

    return `

    `;
    }

    function replyFormMarkup(commentId) {
    return `

    `;
    }

    function setNotice(widget, message, type = ‘info’) {
    const notice = widget.querySelector(‘[data-role=”notice”]’);
    if (!notice) return;

    if (!message) {
    notice.hidden = true;
    notice.textContent = ”;
    notice.classList.remove(‘is-error’);
    return;
    }

    notice.hidden = false;
    notice.textContent = message;
    notice.classList.toggle(‘is-error’, type === ‘error’);
    }

    function setCount(widget, total) {
    const count = widget.querySelector(‘[data-role=”count”]’);
    if (!count) return;

    const num = Number(total || 0);
    count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
    }

    function openReplyBox(widget, commentId) {
    widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
    box.hidden = true;
    box.innerHTML = ”;
    });

    const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (!targetItem) return;

    const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
    if (!replyBox) return;

    replyBox.hidden = false;
    replyBox.innerHTML = replyFormMarkup(commentId);

    const textarea = replyBox.querySelector(‘textarea’);
    if (textarea) textarea.focus();
    }

    function closeReplyBox(container) {
    if (!container) return;
    container.hidden = true;
    container.innerHTML = ”;
    }

    async function initCommentsWidget(widget) {
    const state = {
    articleId: Number(widget.dataset.articleId),
    loadUrl: widget.dataset.loadUrl,
    storeUrl: widget.dataset.storeUrl,
    commentsBaseUrl: widget.dataset.commentsBaseUrl,
    canComment: widget.dataset.canComment === ‘1’,
    page: 1,
    perPage: 10,
    sort: ‘newest’,
    total: 0,
    hasMore: false,
    busy: false
    };

    const list = widget.querySelector(‘[data-role=”list”]’);
    const loading = widget.querySelector(‘[data-role=”loading”]’);
    const empty = widget.querySelector(‘[data-role=”empty”]’);
    const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
    const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
    const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

    async function loadComments(reset = true) {
    if (state.busy) return;

    state.busy = true;
    setNotice(widget, ”);
    loading.hidden = false;

    if (reset) {
    state.page = 1;
    list.innerHTML = ”;
    empty.hidden = true;
    }

    try {
    const url = new URL(state.loadUrl, window.location.origin);
    url.searchParams.set(‘page’, state.page);
    url.searchParams.set(‘per_page’, state.perPage);
    url.searchParams.set(‘sort’, state.sort);

    const response = await requestJson(url.toString(), {
    method: ‘GET’,
    headers: {
    ‘Accept’: ‘application/json’,
    ‘X-Requested-With’: ‘XMLHttpRequest’
    }
    });

    const items = Array.isArray(response.data) ? response.data : [];
    const meta = response.meta || {};

    state.total = Number(meta.total || 0);
    state.hasMore = !!meta.has_more;

    setCount(widget, state.total);

    if (reset) {
    list.innerHTML = ”;
    }

    if (!items.length && reset) {
    empty.hidden = false;
    } else {
    empty.hidden = true;
    list.insertAdjacentHTML(
    ‘beforeend’,
    items.map(item => commentMarkup(item, state.canComment, false)).join(”)
    );
    }

    loadMoreBtn.hidden = !state.hasMore;
    } catch (error) {
    if (!list.children.length) {
    empty.hidden = false;
    empty.textContent = ‘Unable to load comments right now.’;
    }
    setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
    } finally {
    loading.hidden = true;
    state.busy = false;
    }
    }

    async function submitTopLevelComment(form) {
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘[data-role=”submit-comment”]’);

    if (!textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(state.storeUrl, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    textarea.value = ”;

    if (response?.data) {
    list.insertAdjacentHTML(
    ‘afterbegin’,
    commentMarkup(response.data, state.canComment, false)
    );
    empty.hidden = true;

    if ((response.data.status || ”) === ‘approved’) {
    state.total += 1;
    setCount(widget, state.total);
    }
    }

    setNotice(widget, response.message || ‘Comment posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post comment’;
    }
    }
    }

    async function submitReply(form) {
    const commentId = Number(form.dataset.commentId || 0);
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘.ev-comments__reply-submit’);

    if (!commentId || !textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    if (response?.data) {
    const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (parentItem) {
    const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
    if (repliesWrap) {
    repliesWrap.insertAdjacentHTML(
    ‘beforeend’,
    commentMarkup(response.data, state.canComment, true)
    );
    }
    }
    }

    closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
    setNotice(widget, response.message || ‘Reply posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post reply’;
    }
    }
    }

    async function toggleLike(button) {
    const commentId = Number(button.dataset.commentId || 0);
    if (!commentId) return;

    const originalHtml = button.innerHTML;

    try {
    button.disabled = true;
    button.innerHTML = ‘Working…’;

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({})
    });

    const liked = !!response?.data?.liked;
    const likeCount = Number(response?.data?.like_count || 0);

    button.classList.toggle(‘is-liked’, liked);
    button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
    } catch (error) {
    button.innerHTML = originalHtml;
    setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
    } finally {
    button.disabled = false;
    }
    }

    if (composerForm) {
    composerForm.addEventListener(‘submit’, function (e) {
    e.preventDefault();
    submitTopLevelComment(composerForm);
    });
    }

    if (sortSelect) {
    sortSelect.addEventListener(‘change’, function () {
    state.sort = this.value || ‘newest’;
    loadComments(true);
    });
    }

    if (loadMoreBtn) {
    loadMoreBtn.addEventListener(‘click’, function () {
    if (state.busy || !state.hasMore) return;
    state.page += 1;
    loadComments(false);
    });
    }

    widget.addEventListener(‘click’, function (e) {
    const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
    if (likeBtn) {
    e.preventDefault();
    toggleLike(likeBtn);
    return;
    }

    const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
    if (replyBtn) {
    e.preventDefault();
    openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
    return;
    }

    const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
    if (cancelReplyBtn) {
    e.preventDefault();
    closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
    }
    });

    widget.addEventListener(‘submit’, function (e) {
    const replyForm = e.target.closest(‘.ev-comments__reply-form’);
    if (replyForm) {
    e.preventDefault();
    submitReply(replyForm);
    }
    });

    loadComments(true);
    }

    document.addEventListener(‘DOMContentLoaded’, function () {
    document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
    });
    })();

    Trending

    UK cancels Laikipia military training exercise after Kenya fails to issue licences

    UK cancels Laikipia military training exercise after Kenya fails to issue licencesNews
    |Mary Wambui
    |6 hours ago

    Harambee Starlets guaranteed Sh19.5 million as CAF unveils record WAFCON prize money

    Harambee Starlets guaranteed Sh19.5 million as CAF unveils record WAFCON prize moneyNews
    |Erick Kariuki
    |9 hours ago

    From Twitter to X: How AI, video and payments are driving X's evolution three years later

    From Twitter to X: How AI, video and payments are driving X’s evolution three years laterTechnology
    |Margaret Wanjiru
    |9 hours ago
    ‘I’m not mad’ – President Ruto insists free university education plan achievableNews
    |Lucy Mumbi
    |8 hours ago
    CECAFA boss backs Rwanda to host next three Kagame Cup editionsSports
    |The New Times
    |1 hour ago

    NTSA activates nationwide road safety inspections ahead of August school holiday

    NTSA activates nationwide road safety inspections ahead of August school holidayNews
    |Lucy Mumbi
    |9 hours ago

    KMTC opens September intake applications, sets August 11 deadline for students

    KMTC opens September intake applications, sets August 11 deadline for studentsNews
    |Lucy Mumbi
    |1 day ago
    Nakuru court acquits Senator Jackson Mandago in Sh1.1 billion Uasin Gishu scholarship caseNews
    |Carolyne Kubwa
    |1 hour ago
    Tigray displacement sites see renewed arrivals as aid gaps deepenRegional
    |Addis Standard
    |20 minutes ago
    Bankers want Parliament to rethink Sh250 million capital rule for microfinance firmsBusiness
    |Rachael Mutabasi
    |1 day ago

    College Ngala Open Ronald Utalii
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Martin Akuma
    • Website

    Related Posts

    Sports Tourism Set for Boost as Kapsabet Stadium Takes Shape

    July 23, 2026

    TRA warns tourists against unlicensed operators ahead of peak season

    July 23, 2026

    Contour Airlines Connects St. Thomas and St. Maarten, Launching First-Ever Nonstop Service to Boost Direct Caribbean Flights: New Travel Alert

    July 23, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    Cameroon’s richest man, Baba Ahmadou Danpullo moves to protect his $930 million fortune

    July 23, 2026

    Ghanaians Petition ICC Over Xenophobic Violence in South Africa

    July 23, 2026

    Oil passes $100 a barrel again and shares slide as Middle East conflict escalates

    July 23, 2026

    South Africa At Commonwealth Games 2026: Know Your Athlete – Chad Le Clos

    July 23, 2026

    Sports Tourism Set for Boost as Kapsabet Stadium Takes Shape

    July 23, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    Cameroon’s richest man, Baba Ahmadou Danpullo moves to protect his $930 million fortune

    Ghanaians Petition ICC Over Xenophobic Violence in South Africa

    Oil passes $100 a barrel again and shares slide as Middle East conflict escalates

    Most Popular

    South Africa At Commonwealth Games 2026: Know Your Athlete – Chad Le Clos

    Sports Tourism Set for Boost as Kapsabet Stadium Takes Shape

    The 951 elephant deaths in Kruger — why the numbers demand perspective, not outrage

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.