Sobre a unidade
O Centro Educação Profissional do Senac em Araxá apresenta infraestrutura completa em dois pisos com laboratórios e salas de aulas. A unidade conta com agradável e extensa área verde com muitas árvores frutíferas. Tudo isso para trazer conforto e bem-estar ao ambiente escolar dos alunos das áreas de Beleza, Gastronomia, Gestão, Imagem Pessoal, Informática e Saúde.
A unidade está presente na cidade desde 2000, e atende outros 21 municípios nas regiões do Alto Paranaíba, Alto São Francisco e Circuito Serra da Canastra. Estão inclusos na programação os cursos livres, técnicos, além da Aprendizagem Comercial. Há, também, a opção de ensino a distância.
Programa de gratuidade Senac
Da formação inicial ao nível técnico, com custo zero, o Programa Senac de Gratuidade foi pensado como um instrumento de inclusão produtiva para brasileiros oriundos de família de baixa renda.
A estrutura
No Senac em Araxá você encontra ainda:
- Cozinha didática completa
- Laboratórios de informática
- Laboratório Maker e Sala de Inovação
- Laboratório de Estética e Saúde
- Salão de beleza pedagógico

Notícias relacionadas
Avaliação de nossos alunos
Acompanhe avaliações dos nossos alunos sobre os cursos desta unidade.
Confira abaixo onde estamos localizados e como chegar até a unidade. Através do mapa interativo, você pode traçar rotas, visualizar os arredores e planejar sua visita com facilidade.
Denied access to method or field getAttribute of class org.apache.catalina.core.ApplicationHttpRequest
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign layoutDisplayPageObjectProvid... [in template "70687763866433#20120#33250" at line 21, column 1]
---- 1<#-- Extrai latitude e longitude dos dois formatos de URL do Google Maps --> 2<#function getCoords geolocationUrl> 3 <#if geolocationUrl?contains("!3d") && geolocationUrl?contains("!4d")> 4 <#return { 5 "lat": geolocationUrl?keep_after("!3d")?keep_before("!"), 6 "lng": geolocationUrl?keep_after("!4d")?keep_before("!") 7 } /> 8 <#elseif geolocationUrl?contains("@")> 9 <#local coordsPart = geolocationUrl?keep_after("@") /> 10 <#return { 11 "lat": coordsPart?keep_before(","), 12 "lng": coordsPart?keep_after(",")?keep_before(",") 13 } /> 14 </#if> 15 <#return {"lat": "", "lng": ""} /> 16</#function> 17 18<#-- Conteúdo exibido pela página de exibição (/w/...), quando houver --> 19<#assign currentUnit = {} /> 20<#assign displayArticle = "" /> 21<#assign layoutDisplayPageObjectProvider = (request.getAttribute("LAYOUT_DISPLAY_PAGE_OBJECT_PROVIDER"))! /> 22 23<#if layoutDisplayPageObjectProvider?has_content && layoutDisplayPageObjectProvider.getClassName() == "com.liferay.journal.model.JournalArticle"> 24 <#assign displayArticle = layoutDisplayPageObjectProvider.getDisplayObject() /> 25</#if> 26 27<#-- Alternativa: URL amigável do conteúdo, o trecho depois de /w/ --> 28<#assign currentURL = themeDisplay.getURLCurrent()?keep_before("?") /> 29<#if !displayArticle?has_content && currentURL?contains("/w/")> 30 <#assign urlTitle = currentURL?keep_after_last("/w/")?keep_before("/") /> 31 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 32 <#assign displayArticle = (JournalArticleLocalService.fetchArticleByUrlTitle(themeDisplay.getScopeGroupId(), urlTitle))!"" /> 33</#if> 34 35<#assign displayGeolocationUrl = "" /> 36<#assign displayCoords = {"lat": "", "lng": ""} /> 37 38<#if displayArticle?has_content> 39 <#assign displayDocXml = saxReaderUtil.read(displayArticle.getContent()) /> 40 <#assign displayGeolocationUrl = displayDocXml.valueOf("//dynamic-element[@field-reference='geolocation']/dynamic-content[@language-id='${locale}']")!"" /> 41 <#if !displayGeolocationUrl?has_content> 42 <#assign displayGeolocationUrl = displayDocXml.valueOf("(//dynamic-element[@field-reference='geolocation']/dynamic-content)[1]")!"" /> 43 </#if> 44 <#assign displayCoords = getCoords(displayGeolocationUrl?trim) /> 45 46 <#if displayCoords.lat?has_content && displayCoords.lng?has_content> 47 <#assign currentUnit = { 48 "id": displayArticle.getResourcePrimKey()?c, 49 "title": displayArticle.getTitle(locale), 50 "lat": displayCoords.lat, 51 "lng": displayCoords.lng, 52 "geolocationUrl": displayGeolocationUrl 53 } /> 54 </#if> 55</#if> 56 57<#if entries?has_content || currentUnit?has_content> 58 <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> 59 60 <div id="map" style="height: 480px;"></div> 61 62 <script> 63 const allUnitsData = []; 64 const currentUnit = <#if currentUnit?has_content>{ 65 id: "${currentUnit.id}", 66 title: "${currentUnit.title?js_string}", 67 lat: "${currentUnit.lat}", 68 lng: "${currentUnit.lng}", 69 viewURL: window.location.href.split('?')[0], 70 geolocationUrl: "${currentUnit.geolocationUrl?js_string}" 71 }<#else>null</#if>; 72 </script> 73 74 <#-- Collect all units data --> 75 <#list entries as curEntry> 76 <#assign assetRenderer = curEntry.getAssetRenderer() /> 77 <#assign journalArticle = assetRenderer.getArticle() /> 78 <#assign docXml = saxReaderUtil.read(journalArticle.getContent()) /> 79 <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, curEntry, !stringUtil.equals(assetLinkBehavior, "showFullContent")) /> 80 <#assign geolocationUrl = docXml.valueOf("//dynamic-element[@field-reference='geolocation']/dynamic-content[@language-id='${locale}']")!"" /> 81 82 <#-- Add unidadeId to viewURL --> 83 <#assign unidadeId = journalArticle.getResourcePrimKey() /> 84 <#assign viewURL = viewURL?keep_before_last("?") /> 85 <#if viewURL?contains("?")> 86 <#assign viewURL = viewURL + "&unidadeId=" + unidadeId /> 87 <#else> 88 <#assign viewURL = viewURL + "?unidadeId=" + unidadeId /> 89 </#if> 90 91 <#assign coords = getCoords(geolocationUrl) /> 92 <#assign lat = coords.lat /> 93 <#assign lng = coords.lng /> 94 95 <#if lat?has_content && lng?has_content> 96 <script> 97 allUnitsData.push({ 98 id: "${unidadeId}", 99 title: "${curEntry.getTitle(locale)?js_string}", 100 lat: "${lat}", 101 lng: "${lng}", 102 viewURL: "${viewURL?js_string}", 103 geolocationUrl: "${geolocationUrl?js_string}" 104 }); 105 </script> 106 </#if> 107 </#list> 108 109 <script> 110 // Function to initialize map with units 111 async function initMap(unitsToShow) { 112 if (unitsToShow.length === 0) return; 113 114 const map = L.map('map').setView([unitsToShow[0].lat, unitsToShow[0].lng], 13); 115 const customIcon = L.icon({ 116 iconUrl: '${themeDisplay.getPathThemeImages()}/marker-icon.png', 117 iconSize: [42, 64], 118 iconAnchor: [22, 94], 119 popupAnchor: [0, -90] 120 }); 121 122 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 123 attribution: '© OpenStreetMap contributors' 124 }).addTo(map); 125 126 const group = L.featureGroup(); 127 128 unitsToShow.forEach(unit => { 129 const showDetailsButton = unitsToShow.length > 1; 130 131 const popupContent = ` 132 <div class="d-flex justify-content-between align-items-center"> 133 <h4 class="font-weight-bold text-primary mb-0">` + unit.title + `</h4> 134 <a 135 class="btn btn-link text-primary-1-100 p-0" 136 href="` + unit.geolocationUrl + `" 137 target="_blank" 138 rel="noopener noreferrer" 139 > 140 Ver no mapa 141 </a> 142 </div> 143 ` + (showDetailsButton ? ` 144 <a 145 class="btn btn-primary text-white btn-block mt-3" 146 href="` + unit.viewURL + `" 147 target="_blank" 148 > 149 Ver detalhes da unidade 150 </a> 151 ` : '') + ` 152 `; 153 L.marker([unit.lat, unit.lng], { icon: customIcon }) 154 .bindPopup(popupContent) 155 .addTo(group); 156 }); 157 158 group.addTo(map); 159 map.fitBounds(group.getBounds()); 160 } 161 162 // Get unidadeId from URL 163 const urlParams = new URLSearchParams(window.location.search); 164 const unidadeIdFromUrl = urlParams.get('unidadeId'); 165 166 // Main initialization 167 async function init() { 168 // Página de exibição: usa a geolocalização do próprio conteúdo exibido 169 if (currentUnit) { 170 initMap([currentUnit]); 171 } else if (unidadeIdFromUrl) { 172 // Try to fetch specific unit from Headless API 173 try { 174 const response = await fetch( 175 window.location.origin + '/o/headless-delivery/v1.0/structured-contents/' + unidadeIdFromUrl, 176 { 177 method: 'GET', 178 headers: { 179 'Accept': 'application/json' 180 } 181 } 182 ); 183 184 if (response.ok) { 185 const unitData = await response.json(); 186 // Extract geolocation from contentFields 187 const geolocationField = unitData.contentFields?.find(f => f.name === 'geolocation'); 188 const geolocationUrl = geolocationField?.contentFieldValue?.data || ''; 189 190 if (geolocationUrl) { 191 // Parse lat/lng from Google Maps URL 192 let lat = '', lng = ''; 193 if (geolocationUrl.includes('!3d') && geolocationUrl.includes('!4d')) { 194 lat = geolocationUrl.split('!3d')[1]?.split('!')[0] || ''; 195 lng = geolocationUrl.split('!4d')[1]?.split('!')[0] || ''; 196 } else if (geolocationUrl.includes('@')) { 197 const coords = geolocationUrl.split('@')[1]?.split(',') || []; 198 lat = coords[0] || ''; 199 lng = coords[1] || ''; 200 } 201 202 if (lat && lng) { 203 const unit = { 204 id: unidadeIdFromUrl, 205 title: unitData.title || '', 206 lat: lat, 207 lng: lng, 208 viewURL: window.location.href.split('?')[0], 209 geolocationUrl: geolocationUrl 210 }; 211 initMap([unit]); 212 return; 213 } 214 } 215 } 216 } catch (error) { 217 console.warn('Error fetching unit from Headless API:', error); 218 } 219 220 // Fallback: filter from local data 221 const filteredUnits = allUnitsData.filter(unit => unit.id === unidadeIdFromUrl); 222 initMap(filteredUnits); 223 } else { 224 // Show all units 225 initMap(allUnitsData); 226 } 227 } 228 229 init(); 230 </script> 231</#if> 