{"id":22809038,"url":"https://github.com/ccuffs/api-cc","last_synced_at":"2025-07-01T22:06:45.591Z","repository":{"id":37530613,"uuid":"238756111","full_name":"ccuffs/api-cc","owner":"ccuffs","description":"API web para acesso a informações de alunos, professores e dados do curso de Ciência da Computação da UFFS, campus Chapecó.","archived":false,"fork":false,"pushed_at":"2023-02-01T22:42:25.000Z","size":1203,"stargazers_count":13,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-22T13:54:08.429Z","etag":null,"topics":["academic","brazil","laravel","rest-api","universidade","university","web"],"latest_commit_sha":null,"homepage":"https://api.uffs.cc","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ccuffs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-06T18:27:57.000Z","updated_at":"2022-07-13T22:54:03.000Z","dependencies_parsed_at":"2025-04-22T13:45:51.672Z","dependency_job_id":null,"html_url":"https://github.com/ccuffs/api-cc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"ccuffs/template","purl":"pkg:github/ccuffs/api-cc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccuffs%2Fapi-cc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccuffs%2Fapi-cc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccuffs%2Fapi-cc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccuffs%2Fapi-cc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ccuffs","download_url":"https://codeload.github.com/ccuffs/api-cc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccuffs%2Fapi-cc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261391996,"owners_count":23151707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["academic","brazil","laravel","rest-api","universidade","university","web"],"created_at":"2024-12-12T11:13:18.417Z","updated_at":"2025-06-23T01:04:23.389Z","avatar_url":"https://github.com/ccuffs.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\".github/logo.png\" title=\"Logo do projeto\"\u003e\u003cbr /\u003e\n    \u003cimg src=\"https://img.shields.io/maintenance/yes/2020?style=for-the-badge\" title=\"Status do projeto\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/workflow/status/ccuffs/api-cc/ci.uffs.cc?label=Build\u0026logo=github\u0026logoColor=white\u0026style=for-the-badge\" title=\"Status do build\"\u003e\n\u003c/p\u003e\n\n# API CC\n\nEsse repositório contém a aplicação que serve a API do curso disponível em [api.uffs.cc](https://api.uffs.cc). Ela é uma API REST que disponibiliza diversas funcionalidades e dados que podem ser utilizados por serviços digitais curso, como aplicativos. Para utilizar a API, você precisa de uma chave de acesso (_api key_).\n\n\u003e **IMPORTANTE:** Para conseguir uma chave de acesso, escreva para [computacao.ch@uffs.edu.br](mailto:computacao.ch@uffs.edu.br)\n\n## Utilização da API\n\nA API possui diversos endpoints disponíveis, todos acessíveis através de um prefixo de versão. Por exemplo, para acessar o endpoint `teste` na versão `v1` da API, a URL é:\n\n```\nhttps://api.uffs.cc/v0/teste\n```\n\nA versão estável da API estará disponível no prefixo `v1`, enquanto a versão experimental (que pode mudar a qualquer momento), está disponível no prefixo `v0`.\n\nCom exceção do enpoint `auth`, todos os endpoints precisam de uma chave de autenticação enviada através do seguinte cabeçalho HTTP:\n\n```\nAuthorization: Bearer XXX\n```\n\nonde `XXX` é o valor da sua chave de acesso, por exemplo `c08cbbfd6eefc83ac6d23c4c791277e4`.\nAbaixo está um exemplo de requisição para o endpoint `v0/ping` utilizando a chave de acesso acima:\n\n```bash\ncurl -H 'Accept: application/json' -H \"Authorization: Bearer c08cbbfd6eefc83ac6d23c4c791277e4\" https://api.uffs.cc/v0/ping\n```\n\nPara os endpoints que não necessitam do token, basta enviar os parâmetros:\n\n```bash\ncurl -H 'Accept: application/json' -d \"user=meuiduffsaqui\u0026password=minhasenhaaqui\" http://api.uffs.cc/v0/auth\n```\n\n### Endpoints\n\n| Verbo |   URL  | Parâmetros | Retorno | Informação |\n|-------|:-------|:-----------|:--------|:-----------|\n| `POST`| [/auth](http://api.uffs.cc/v0/auth) | `user` (string, idUFFS do usuário)\u003cbr\u003e`password` (string) | `token` (string JWT)\u003cbr\u003e`passport` (string JWT)\u003cbr\u003e`user` (objeto) | Autentica um usuário utilizando o idUFFS (e sua senha). Não exige token. O campo `token` do retorno deve ser salvo e utilizado para chamadas subsequentes aos endpoints através do `Authorization: Bearer XXX`, onde `XXX` é o valor de `token`. O campo `passport` do retorno deve ser salvo e utilizado como _parâmetro_ em todas chamadas subsequentes a endpoints que retornem dados pessoais ou façam qualquer alteração, ex. histórico escolar.|\n\n## Desenvolvimento\n\nAs seções seguintes apresentam instruções para você baixar e rodar a aplicação localmente na sua máquina. Isso é útil se você estiver desenvolvendo algo. Se você deseja apenas utilizar a API, veja a seção anterior.\n\n### 1. Dependências\n\nPara executar o projeto, você precisa ter o seguinte instalado:\n\n- [Git](https://git-scm.com);\n- [PHP](https://www.php.net/downloads);\n- [Composer](https://getcomposer.org/download/);\n- [MySQL](https://www.mysql.com/downloads/);\n- [NodeJS](https://nodejs.org/en/);\n- [NPM](https://www.npmjs.com/package/npm);\n\nVocê precisa de várias extensões PHP instaladas também:\n\n```\nsudo apt install php-cli php-mbstring php-zip php-xml php-curl\n```\n\n### 2. Configuração\n\nFeito a instalação das dependências, é necessário obter uma cópia do projeto. A forma recomendada é clonar o repositório para a sua máquina.\n\nPara isso, rode:\n\n```\ngit clone --recurse-submodules https://github.com/ccuffs/api.uffs.cc \u0026\u0026 cd api.uffs.cc\n```\n\nIsso criará e trocará para a pasta `api.uffs.cc` com o código do projeto.\n\n#### 2.1 PHP\n\nInstale as dependências do PHP usando o comando abaixo:\n\n```\ncomposer install\n```\n\n#### 2.2 Banco de Dados\n\nO banco de dados mais simples para uso é o SQLite. Para criar uma base usando esse SGBD, rode:\n\n```\ntouch database/database.sqlite\n```\n\n#### 2.3 Node\n\nInstale também as dependências do NodeJS executando:\n\n```\nnpm install\n```\n\n#### 2.4 Laravel\n\nCrie o arquivo `.env` a partir do arquivo `.env.example` gerado automaticamente pelo Laravel:\n\n```\ncp .env.example .env\n```\n\nApós isso, no arquivo `.env` altere o valor do campo `DB_CONNECTION` para `sqlite`. Também altere o valor de  `DB_DATABASE` para o caminho do seu arquivo `database.sqlite` criado anteriormente, por exemplo `/mnt/d/www/api.uffs.cc/database/database.sqlite`.\n\nNo final, parte do seu arquivo `.env` ficará assim:\n\n```\nDB_CONNECTION=sqlite\nDB_DATABASE=D:/wamp/www/api-cc/database/database.sqlite\n```\n\nFeita as alterações no `.env` execute o seguinte comando para a criação dos esquemas:\n\n```\nphp artisan migrate\n```\n\nPor fim execute o comando abaixo para a geração da chave de autenticação da aplicação:\n\n```\nphp artisan key:generate\n```\n\n#### 2.5 Rodando o projeto\n\nFinalmente, após seguido os passos anteriores, gere os recursos JavaScript e CSS:\n\n```\nnpm run dev\n```\n\ne por fim inicie o servidor do Laravel:\n\n```\nphp artisan serve\n```\n\nApós isso a aplicação estará rodando na porta 8000 e poderá ser acessada em [localhost:8000](http://localhost:8000).\n\n## Contribua\n\nSua ajuda é muito bem-vinda, independente da forma! Confira o arquivo [CONTRIBUTING.md](CONTRIBUTING.md) para conhecer todas as formas de contribuir com o projeto. Por exemplo, [sugerir uma nova funcionalidade](https://github.com/ccuffs/template/issues/new?assignees=\u0026labels=\u0026template=feature_request.md\u0026title=), [reportar um problema/bug](https://github.com/ccuffs/api-cc/issues/new?assignees=\u0026labels=bug\u0026template=bug_report.md\u0026title=), [enviar um pull request](https://github.com/ccuffs/hacktoberfest/blob/master/docs/tutorial-pull-request.md), ou simplemente utilizar o projeto e comentar sua experiência.\n\nVeja o arquivo [ROADMAP.md](ROADMAP.md) para ter uma ideia de como o projeto deve evoluir.\n\n\n## Licença\n\nEsse projeto é licenciado nos termos da licença open-source [Apache 2.0](https://choosealicense.com/licenses/apache-2.0/) e está disponível de graça.\n\n## Changelog\n\nVeja todas as alterações desse projeto no arquivo [CHANGELOG.md](CHANGELOG.md).\n\n## Projetos semelhates\n\nAbaixo está uma lista de links interessantes e projetos similares:\n\n* [auth-iduffs](https://github.com/ccuffs/auth-iduffs)\n* [Brasil.io](https://brasil.io)\n* [Dados Abertos da UFFS](https://dados.uffs.edu.br)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccuffs%2Fapi-cc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccuffs%2Fapi-cc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccuffs%2Fapi-cc/lists"}