Open-source project
periclesanfe/material_estudos_ifal avatar
periclesanfe/material_estudos_ifal

The IFAL BSI study site puts the Gemini key in sessionStorage

Repositório colaborativo de conteúdos do Bacharelado em Sistemas de Informação do IFAL — React, TypeScript, Tailwind CSS, Quiz com IA

29 stars7 forksTypeScriptLicense varies

At a glance

What is it?
A React and TypeScript site that organises study material for all 64 subjects of the IFAL Information Systems degree, with a static quiz on every page and a second quiz generated live by Google Gemini. Deployment to GitHub Pages needs a base path and an SPA fallback.
Who is it for?
This repository suits students of the IFAL Information Systems degree who want one browsable place for subject notes, and contributors who follow the fork, branch and pull request flow it documents. It does not suit anyone looking for an exam preparation course or a statement about what an entrance exam will contain, since it is organised by the degree curriculum rather than by any test, and the licence is a plain statement of educational use rather than an open licence file.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 50 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • periclesanfe/material_estudos_ifal29 ★ · +0
Star history
Repository2026-08-232026-10-22
periclesanfe/material_estudos_ifal2929

0 Stars in the last 60 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Sixty four subjects, arranged by period

The scope is the whole degree rather than one course. The curriculum grid covers all 64 subjects of the BSI programme at IFAL, the Instituto Federal de Alagoas, arranged across eight periods with a separate bucket for electives. The first period starts with Fundamentos de SI, Algoritmos, Web, Lógica Matemática, Inglês Técnico and Filosofia, and the pattern continues with subjects such as Banco de Dados and Sistemas Operacionais in period three, IHC, Redes and POO in period four, and Processos de Dev Software in period six. Period seven and eight are the applied and research heavy end, with Segurança da Informação, Tecnologias Assistivas and Apoio à Decisão, and the elective row lists DevOps, Metodologias Ágeis, Mobile, IA, Marketing and Ciência de Dados among others. Each subject has its own page, so the grid is the index and the pages are the study material.

Every subject page carries two kinds of quiz

A subject page is described as having four parts, and the two quizzes are the interesting ones because they behave differently. Content is organised by topics and derived from materials the teachers provided. The static quiz holds fixed multiple choice questions with feedback, which means it costs nothing to run and always asks the same thing. The AI quiz is generated by Google Gemini in real time, so the questions change between sessions. That distinction matters when you are revising under exam conditions: the static set is the one whose difficulty you can learn, while the Gemini set is the one that keeps you honest about not recognising a phrasing. The interface itself is also described in the README as premium, with dark mode, animations and a modern design, which is a visual claim rather than a functional one.

The Gemini key never leaves the browser tab

Using the AI quiz requires your own key, obtained free from Google AI Studio, then pasted into the application's settings screen and saved with the Salvar button. The privacy arrangement is the notable part and it is spelled out rather than implied: the key stays only in the session of the browser tab, in sessionStorage, it is not saved on GitHub Pages, it is not sent to any project server, and it goes directly from the user's browser to the Gemini API in an x-goog-api-key header. The consequence for a reader is that the AI quiz is a per visitor feature with no shared quota and no server component, and that closing the tab discards the key. It also means the static quiz is the only part of the site that works with no key at all.

GitHub Pages needs a base path and a fallback route

Deployment is already wired to GitHub Actions, so publishing is four steps rather than a build tutorial: open Settings then Pages, choose GitHub Actions under Build and deployment, merge a pull request into main or run the workflow manually, and let the Deploy to GitHub Pages workflow generate dist/ and publish the site. Two details in the README are the difference between a working deployment and a blank page. Because the site is served from a project path rather than a domain root, Vite uses base set to /material_estudos_ifal/ in production. And because the app uses client side routes such as /materia/comportamento-organizacional, the project includes an SPA fallback so that opening or reloading such a URL directly resolves to the app instead of a 404. The published site is at https://periclesanfe.github.io/material_estudos_ifal/.

npm run dev serves it, and six scripts curate content

The local loop is three commands, clone, npm install, npm run dev, and the app is then served at http://localhost:5173. package.json marks the project as private, at version 0.0.0, with ES modules, and exposes more than the four usual Vite scripts. Alongside dev, build, lint and preview, there are six curation scripts: ppc:bibliografia and ppc:links and ppc:montar for the academic programme, which extract the bibliography, find works without a link and assemble the syllabus, and taxonomia:montar and taxonomia:validar for the subject taxonomy, which builds and then validates it. The build script compiles TypeScript first and then runs vite build. The dependency list is short, with React 19, React Router, the motion library for animation and Tailwind 4 through the Vite plugin, on a TypeScript 6 toolchain.

Agents and skills are files in the repository

Development is organised as documentation rather than as tooling, which is unusual enough to be worth reading before contributing. Four agent files sit in .agent/: orchestrator.md coordinates the others, bsi_specialist.md covers the programme and academic content, frontend_developer.md covers React, TypeScript and Tailwind work, and qa.md covers code review, the build and the visual result. Five skills sit alongside them in .skills/: simplify for reducing visual and code complexity, ui_review for validating layout, typography and colours, content_creation for writing a new subject page, quiz_creation for writing quiz questions, and code_review for pull requests. There is also .docs/ with a functional specification, a rules and usage document and the degree PDF, .rules/ for contribution and code rules, and a .github/ directory configured for pull requests, issues and code owners. A .claude/ directory is present in the repository root as well.

The Classroom collector is read only and gitignored

There is a helper for the part of content creation nobody enjoys, and its constraints are the point. The collector downloads material from your own Google Classroom classes, announcements, activities and attachments, straight from your login, and generates an index per class. It is read only and everything it saves goes into .classroom/, a folder that git ignores, so the material itself is never published. Two commands run it:

bash
cd scripts/classroom
python3 coletar_classroom.py --listar   # lista suas turmas
python3 coletar_classroom.py            # baixa tudo

The step by step, including the OAuth credential, is in scripts/classroom/README.md. The README also states the rule that governs turning that material into site content: summarise it and cite the teachers, and do not copy authorial material in full. That instruction, combined with the licence note that content is derived from materials provided by IFAL teachers and the project is for educational use, sets the boundary for every subject page in the repository.

Editorial conclusion

This repository suits students of the IFAL Information Systems degree who want one browsable place for subject notes, and contributors who follow the fork, branch and pull request flow it documents. It does not suit anyone looking for an exam preparation course or a statement about what an entrance exam will contain, since it is organised by the degree curriculum rather than by any test, and the licence is a plain statement of educational use rather than an open licence file. Before you contribute, read .github/CONTRIBUTING.md and .rules/CODE_STANDARDS.md, follow .skills/content_creation.md for new subject pages, write commit messages in Portuguese, and remember that material pulled from Google Classroom stays in a gitignored folder and must be summarised with the teacher credited rather than copied.

Frequently asked questions

What should I study for the IFAL exam according to this repository?

This is not an exam guide. It is a study site for the Information Systems degree at IFAL, organised by the 64 subjects of the curriculum across eight periods plus electives, with each subject on its own page containing topic notes and quizzes.

Is there a preparatory course for IFAL in this project?

No. The repository covers the subjects of the BSI degree itself, from Fundamentos de SI in period one to Tecnologias Assistivas and Apoio à Decisão in period eight, and it is described as an educational use project made by students and alumni.

Which topics will appear on the 2026 IFAL exam, according to this repo?

The repository makes no claim about any exam. Its content is derived from materials provided by IFAL teachers and organised by subject and topic, so the only ordering it offers is the curriculum grid by period.

Does the IFAL exam have an essay, according to this material?

Nothing in the repository discusses entrance exams or their format. It is a study material site for degree subjects, with a static multiple choice quiz per subject and an optional quiz generated by Google Gemini at runtime.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/periclesanfe-material-estudos-ifal.svg)](https://hysenlabs.com/projects/periclesanfe-material-estudos-ifal)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/periclesanfe-material-estudos-ifal.svg)](https://hysenlabs.com/projects/periclesanfe-material-estudos-ifal)