Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 24 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ A **FACODI** é uma plataforma de aprendizagem aberta que replica planos curricu
- 🎓 Unidades curriculares com ementa, resultados de aprendizagem e tópicos
- 🎥 Playlists abertas do YouTube organizadas por prioridade
- 📝 Conteúdo em Markdown sincronizado automaticamente com o Supabase
- 🌐 Multilíngue (PT como padrão, EN preparado como fallback)
- 🌐 Multilíngue (PT, EN, ES e FR)

---

Expand All @@ -25,6 +25,16 @@ A **FACODI** é uma plataforma de aprendizagem aberta que replica planos curricu

---

## 🧭 Separação de responsabilidades

- **Hugo (`facodi.pt`)**: mantém o catálogo estático em Markdown, gera as páginas multilíngues e apenas injeta as variáveis públicas do Supabase recebidas no ambiente de deploy.
- **Supabase**: armazena o conteúdo normalizado (cursos, UCs, tópicos, playlists) e expõe APIs autenticadas por `anon`/`service`. As chaves continuam definidas exclusivamente como _secrets_.
- **Portal Next.js (futuro)**: consumirá esses dados de forma dinâmica, com autenticação e experiências interativas sem misturar runtime React com o build do Hugo.

Essa divisão garante que o catálogo estático permaneça simples, seguro e versionável, enquanto o portal evolui com funcionalidades ricas sobre a mesma base de dados.

---

## 📂 Estrutura do repositório

```bash
Expand All @@ -33,15 +43,19 @@ facodi.pt/
├─ config/
│ └─ _default/
├─ content/
│ ├─ _index.md
│ └─ courses/
│ └─ LESTI/
│ └─ 2024-2025/
│ ├─ index.md # Curso
│ └─ uc/
│ └─ LESTI-ALG1/
│ ├─ index.md # Unidade curricular
│ └─ estruturas-de-dados.md # Tópico
│ ├─ pt/
│ │ ├─ _index.md
│ │ └─ courses/
│ │ └─ LESTI/
│ │ └─ 2024-2025/
│ │ ├─ index.md # Curso
│ │ └─ uc/
│ │ └─ LESTI-ALG1/
│ │ ├─ index.md # Unidade curricular
│ │ └─ estruturas-de-dados.md # Tópico
│ ├─ en/_index.md
│ ├─ es/_index.md
│ └─ fr/_index.md
├─ layouts/
│ ├─ _default/baseof.html
│ ├─ course/single.html
Expand Down
2 changes: 1 addition & 1 deletion config/_default/hugo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ rssLimit = 10
summarylength = 40

defaultContentLanguage = "pt"
defaultContentLanguageInSubdir = false
defaultContentLanguageInSubdir = true

copyRight = "FACODI — Conteúdo aberto para aprendizagem comunitária"

Expand Down
26 changes: 24 additions & 2 deletions config/_default/languages.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
[pt]
languageName = "Português"
contentDir = "content"
contentDir = "content/pt"
weight = 1
languageCode = "pt-PT"
[pt.params]
languageISO = "PT"
languageTag = "pt-PT"
Expand All @@ -11,7 +12,28 @@
languageName = "English"
contentDir = "content/en"
weight = 2
languageCode = "en-US"
[en.params]
languageISO = "EN"
languageTag = "en-US"
footer = 'Built by the FACODI community. English content coming soon.'
footer = 'Built by the FACODI community with Hugo and Supabase.'

[es]
languageName = "Español"
contentDir = "content/es"
weight = 3
languageCode = "es-ES"
[es.params]
languageISO = "ES"
languageTag = "es-ES"
footer = 'Creado por la comunidad FACODI con Hugo y Supabase.'

[fr]
languageName = "Français"
contentDir = "content/fr"
weight = 4
languageCode = "fr-FR"
[fr.params]
languageISO = "FR"
languageTag = "fr-FR"
footer = 'Construit par la communauté FACODI avec Hugo et Supabase.'
2 changes: 1 addition & 1 deletion config/_default/menus/menus.en.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[[main]]
name = "Courses"
url = "/"
pageRef = "/"
weight = 10

[[footer]]
Expand Down
9 changes: 9 additions & 0 deletions config/_default/menus/menus.es.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[[main]]
name = "Cursos"
pageRef = "/"
weight = 10

[[footer]]
name = "Código abierto"
url = "https://github.com/Monynha-Softwares/facodi.pt"
weight = 10
9 changes: 9 additions & 0 deletions config/_default/menus/menus.fr.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[[main]]
name = "Cours"
pageRef = "/"
weight = 10

[[footer]]
name = "Code ouvert"
url = "https://github.com/Monynha-Softwares/facodi.pt"
weight = 10
2 changes: 1 addition & 1 deletion config/_default/menus/menus.pt.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[[main]]
name = "Cursos"
url = "/"
pageRef = "/"
weight = 10

[[footer]]
Expand Down
47 changes: 0 additions & 47 deletions config/_default/params.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,58 +14,11 @@ mainSections = ["courses"]
colorModeToggler = true
navbarSticky = true
containerBreakpoint = "lg"

navBarButton = false
navBarButtonUrl = "/"
navBarButtonText = ""

flexSearch = false
searchExclKinds = []
searchExclTypes = []
showSearch = []
indexSummary = false

showDate = false
showSummary = true
searchLimit = 50

alert = false
alertDismissable = true

bootstrapJavascript = true

sectionNav = ["courses"]
toTopButton = true
breadcrumbTrail = false
headlineHash = true
scrollSpy = false

multilingualMode = true
showMissingLanguages = false

docsVersioning = false
docsVersion = "1.0"

headerBar = false
backgroundDots = false

sectionFooter = false
relatedPosts = false
imageList = false
imageSingle = true

editPage = false
lastMod = false
repoHost = "GitHub"
docsRepo = "https://github.com/Monynha-Softwares/facodi.pt"
docsRepoBranch = "main"
docsRepoSubPath = ""

krokiURL = "https://kroki.io"

[supabase]
url = ""
anon_key = ""

[seo]
[seo.title]
Expand Down
6 changes: 4 additions & 2 deletions content/en/_index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
---
title: "FACODI Catalog"
lead: "Open courses inspired by the University of Algarve curricula."
layout: home
draft: true
---

FACODI content is primarily authored in Portuguese. English translations will be published as they become available.
FACODI is a community-led initiative that curates open courses based on the official curricula from UAlg.

Explore the published courses and dive into each unit to see syllabi, learning outcomes, and curated playlists.
9 changes: 9 additions & 0 deletions content/es/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: "Catálogo FACODI"
lead: "Cursos abiertos inspirados en los planes de estudios de la Universidad del Algarve."
layout: home
---

FACODI es una iniciativa comunitaria que organiza cursos abiertos basados en los planes oficiales de la UAlg.

Descubre los cursos disponibles y explora cada unidad curricular para consultar programas, resultados de aprendizaje y playlists recomendadas.
9 changes: 9 additions & 0 deletions content/fr/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: "Catalogue FACODI"
lead: "Cours ouverts inspirés des plans d'études de l'Université de l'Algarve."
layout: home
---

FACODI est une initiative communautaire qui propose des cours ouverts basés sur les programmes officiels de l'UAlg.

Parcourez les cours disponibles et explorez chaque unité d'enseignement pour consulter les plans de cours, les résultats d'apprentissage et les playlists recommandées.
File renamed without changes.
116 changes: 116 additions & 0 deletions i18n/en.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
[course_plan_short]
other = "Plan {{ .plan }}"

[course_ects_short]
other = "{{ .ects }} ECTS"

[course_duration_short]
other = "{{ .count }} semesters"

[course_summary_pending]
other = "Documentation in progress."

[home_no_courses]
other = "No courses published yet. Check back soon!"

[course_header_label]
other = "Course {{ .code }}"

[course_plan_caption]
other = "Curricular plan {{ .plan }}"

[course_synced_title]
other = "Synchronized content"

[course_synced_loading]
other = "Loading detailed description from Supabase…"

[course_units_title]
other = "Curricular units"

[course_units_loading]
other = "Loading curricular units…"

[course_details_title]
other = "Course details"

[course_details_institution]
other = "Institution"

[course_details_school]
other = "School"

[course_details_ects]
other = "ECTS"

[course_details_duration]
other = "Duration"

[course_details_language]
other = "Language"

[uc_header_label]
other = "Curricular unit {{ .code }}"

[uc_official_title]
other = "Official content"

[uc_official_loading]
other = "Syncing syllabus and materials…"

[uc_outcomes_title]
other = "Learning outcomes"

[uc_outcomes_loading]
other = "Loading outcomes…"

[uc_playlists_title]
other = "Recommended playlists"

[uc_playlists_loading]
other = "Loading playlists…"

[uc_topics_title]
other = "Associated topics"

[uc_topics_loading]
other = "Loading topics…"

[uc_details_title]
other = "Information"

[uc_details_course]
other = "Course"

[uc_details_ects]
other = "ECTS"

[uc_details_semester]
other = "Semester"

[uc_details_language]
other = "Language"

[uc_details_prerequisites]
other = "Prerequisites"

[topic_header_label]
other = "Topic {{ .slug }}"

[topic_synced_title]
other = "Synchronized content"

[topic_synced_loading]
other = "Loading Markdown content…"

[topic_playlists_title]
other = "Related playlists"

[topic_playlists_loading]
other = "Loading playlists…"

[topic_tags_title]
other = "Tags"

[topic_tags_loading]
other = "Loading tags…"
Loading