{"id":27255386,"url":"https://github.com/randomicecube/exbiidei","last_synced_at":"2026-01-21T22:31:39.392Z","repository":{"id":43216196,"uuid":"466103590","full_name":"randomicecube/exbiidei","owner":"randomicecube","description":"My submission for DEI's BL039/2022 exercise, DEIPaper","archived":false,"fork":false,"pushed_at":"2022-03-13T00:53:50.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T02:29:22.836Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/randomicecube.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-04T11:51:10.000Z","updated_at":"2022-03-12T09:21:27.000Z","dependencies_parsed_at":"2022-09-11T22:23:50.626Z","dependency_job_id":null,"html_url":"https://github.com/randomicecube/exbiidei","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/randomicecube/exbiidei","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomicecube%2Fexbiidei","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomicecube%2Fexbiidei/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomicecube%2Fexbiidei/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomicecube%2Fexbiidei/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/randomicecube","download_url":"https://codeload.github.com/randomicecube/exbiidei/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/randomicecube%2Fexbiidei/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28645549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-11T02:19:33.459Z","updated_at":"2026-01-21T22:31:39.376Z","avatar_url":"https://github.com/randomicecube.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DEIPaper\n\n- [DEIPaper](#deipaper)\n  - [Dependências](#dependências)\n  - [Correr a aplicação](#correr-a-aplicação)\n  - [Opções de desenho](#opções-de-desenho)\n\nProjeto realizado no âmbito da candidatura à BII BL039/2022, tendo como objetivo implementar um sistema muito simples de gestão de publicações científicas para o DEI, sistema esse ligado à API [ISTPaper](https://aduck.rnl.tecnico.ulisboa.pt/istpaper/swagger-ui/index.html). Recorreu-se às _frameworks_ `Django` e `bootstrap` para a modelação do sistema.\n\n## Dependências\n\nPara correr a aplicação localmente, é necessária uma máquina equipada com:\n\n  - `Django`, 3.1 ou superior;\n  - `requests`, 2.27 ou superior;\n  - `django-crispy-forms`, 1.14 ou superior.\n\nDe realçar que as versões acima mencionadas foram as utilizadas em desenvolvimento, pelo que é possível que versões mais antigas funcionem de igual forma.\n\nPara as instalar, basta executar `pip install Django requests django-crispy-forms`.\n\nPor fim, executar `pip freeze` e verificar se as dependências foram corretamente instaladas.\n\n## Correr a aplicação\n\nInstaladas as dependências, basta executar o comando `python manage.py runserver --insecure` na raiz deste repositório para correr a aplicação.  \nVale a penar notar que a flag `--insecure` é necessária para que o `Django` consiga disponibilizar os ficheiros estáticos sem a flag `Debug` ativa.\n\nDe seguida, poderá interagir com a aplicação através do browser, por exemplo, acedendo via http://localhost:8000/ ou http://127.0.0.1:8000.\n\n`SECRET_KEY` deve estar definida como variável de ambiente do sistema para que a aplicação possa funcionar.\n\n## Opções de desenho\n\n- Foi decidido implementar um aspeto _dark mode_ por definição - com mais tempo, teria sido interessante implementar um _toggle_ que permitisse ao utilizador escolher entre visuais _light_ e _dark_, mas a ideia foi abandonada.\n\n- Não foram colocadas as _views_ que permitem editar e eliminar publicações diretamente na _homepage_:\n\n  - Editar publicações é possível através da página específica de cada publicação - desta forma, o utilizador pode facilmente ver todos os detalhes do _paper_ que pretende editar antes de o fazer, sendo porventura mais intuitivo do que um _form_ onde se permite editar qualquer _paper_ na _homepage_.\n\n  - Remover publicações é possível, para além de na página específica de cada publicação, na secção de listagem de todas as publicações (associada ao _paper_ da linha em que o botão se encontra). O utilizador continua, tal como ao editar, a ter de **ver** a publicação antes de a poder remover.\n  \n  Ainda quanto à _homepage_, destacou-se a **listagem** da publicações em relação às outras opções apresentadas, por ser a operação que o utilizador comum provavelmente procurará realizar mais frequentemente.\n\n- Foram utilizados [Modal Forms](https://getbootstrap.com/docs/4.3/components/modal/#varying-modal-content) em vez dos Forms padrão do `bootstrap`, com vista a evitar páginas cheias de formulários - um utilizador só vê um formulário quando diz que o quer ver (seja isso carregando num botão, aparecendo o tal Modal Form, ou quando o próprio formulário é todo o conteúdo da página).\n\n- A paginação não apresenta qualquer opção de filtragem e/ou ordenação, visto que da forma como a API `ISTPaper` é implementada, só é possível obter `limit` publicações por vez - ora, sem saber o limite de publicações existentes, não podemos pedi-las todas de forma a realizar essas operações, pelo que a ideia foi abandonada.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomicecube%2Fexbiidei","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frandomicecube%2Fexbiidei","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomicecube%2Fexbiidei/lists"}