GithubHelp home page GithubHelp logo

euyogi / projeto-anceu-cs50 Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 44.28 MB

Meu projeto do curso CS50: Um analisador de pdfs que processa as notas dos aprovados pelo Acesso Enem e organiza tudo. Agora em C++

Python 1.43% Batchfile 0.01% C++ 90.63% C 7.87% CMake 0.07%
cs50 cs50course cs50x python unb customtkinter pdftotext project portuguese-brazilian exe

projeto-anceu-cs50's Introduction

Projeto-Anceu-CS50

Header

Esse é o meu projeto final para o curso CS50 - é um aplicativo que analisa as notas de corte do enem para a UnB, feito em python agora em C++, que checa as notas dos candidatos que participaram do Enem e se inscreveram na Universidade de Brasília - UnB, mostrando por fim um resumo para cada curso da instituição, com as maiores notas, a média e as menores notas (nota de corte) em cada cota disponível.

É possível calcular também a sua própria nota, já que a universidade possui um sistema de pesos para as notas de cada área.

Para testar:

Baixe o programa aqui [WINDOWS] (desenvolvido para windows 11 mas funcionou em outras versões nos meus testes).

Se quiser ver o código e compilar você mesmo, baixe o .zip com todos os arquivos, nele se você quiser compilar com Visual Studio tem uma solução do Visual Studio 2022, além de ser possível compilar também com CMake. Ambos disponíveis na pasta new_cpp_app e a antiga versão Python em old_python_app, baixe o .zip aqui.

Tela Inicial:

Tela inicial

Pesquisando Curso:

Pesquisando curso

Tela Após Pesquisar Notas de Algum Curso (Nesse caso o curso pesquisado foi medicina):

Após pesquisar curso

Tela Após Selecionar Ver Detalhes:

Após selecionar ver detalhes

Funcionalidades:

  • Uma barra de pesquisa com opções para pesquisar/escolher o curso desejado
  • Opções para escolher o ano em que quer pesquisar as notas (2023, 2022 ou 2021)
  • Opções para escolher a chamada, para ver as notas de quem foi aprovado nas outras chamadas (1ª, 2ª, 3ª...)
  • Opção para ver uma lista com todas as inscrições, notas e as respectivas posições dos candidatos aprovados separados por vírgulas assim como nos pdfs (10000000, 999.99,5,-,1...)
  • Painel para aplicar os pesos da UnB à sua nota
  • Possibilidade de copiar os resultados facilmente
  • Possibilidade de dar zoom na maior caixa de texto (a que aparece os resultados) para melhor visualização

Diferença da nova versão em C++:

  • De (em alguns casos como medicina) 10s para menos de 1s para pesquisar notas do curso
  • A versão .exe anterior tinha mais de 30mb e só funcionava com diversos arquivos .dll, agora é menos de 5mb e funciona sozinha (teoricamente, ainda tenho que testar)
  • Agora a barra de pesquisa vai mostrando o nome dos cursos similares ao que você está digitando (muito bom)
  • O menu com a lista de cursos agora tem uma barra de rolagem (graças a deus)
  • Agora o programa é dimensionável e suporta diferentes escalas do windows (100%, 125%, etc...) (antes se mudasse a escala textos ficariam estranhos)
  • O tamanho padrão da janela é menor que antes
  • Agora da para dar zoom na maior caixa de texto
  • Ao pesquisar a barra de progresso funciona durante todo o processo (antes era só enquanto estava baixando os pdfs)
  • Não criamos mais um arquivo .txt com os resultados (você ainda pode copiar os resultados)
  • A parte onde insere suas notas agora só aceita números e formata automaticamente eles (para o formato 000.00)
  • É possível abrir os links da tela de informações
  • As dicas agora tem bordas arredondadas
  • Mudança do som do clique
  • Mudança da fonte (Cascadia Code para Ubuntu Mono Regular)
  • Mudança do ícone (antes era o padrão do customtkinter)
  • Adicionado opções de 2023, removido opções de 2020
  • Otimizações se for pesquisar cursos do mesmo ano e chamada em seguida

Bibliotecas e códigos:

Toda a interface do programa é feita com Dear ImGui e a barra de pesquisa foi feita pelo khlorz e está disponível aqui, apesar de ter feito algumas alterações mínimas em ambos. Também utilizei esse código do NeWi para começar o conversor de pdf. (Por isso o nome Neyo -> NeWi + Yogi)

Escolhas:

Bom, escolhi criar esse programa pois eu tive bastante dificuldade para checar as notas para o curso que eu quero e quase não havia informações na internet sobre as notas do ano de 2022, assim, por ser um processo que se manual é bem trabalhoso tendo que comparar e pesquisar termos em dois PDFs e impossibilitado de ver as informações organizadinhas, decidi criar esse programa, ele passou por diversos estágios desde um processo semi-automático em que era necessário copiar os dados manualmente, para automático em que o programa baixava o PDF e extraia os dados com o aperto de um botão, além de melhorias no desempenho, até por fim uma nova versão em C++ mais polida e muito mais rápida, leve e agora com uma versão .exe (executável para windows) facilmente baixável.

Apesar do programa não ser nada muito grande, nem ser super portável como um site ou um aplicativo mobile ainda pude ajudar dezenas de pessoas com as mesmas dificuldades que eu tive no começo com o programa:

Como era o programa em Python? (muito parecido, pelo menos em visual)

Projeto feito por: Yogi Nam de Souza Barbosa

Footer

projeto-anceu-cs50's People

Contributors

euyogi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.