{"id":23209674,"url":"https://github.com/alinykelly/pass-in-api-nodejs","last_synced_at":"2025-10-06T18:48:16.663Z","repository":{"id":238030791,"uuid":"795723162","full_name":"AlinyKelly/pass-in-api-nodejs","owner":"AlinyKelly","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-04T14:59:44.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T23:34:51.360Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/AlinyKelly.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-03T22:27:40.000Z","updated_at":"2024-05-04T14:59:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"0c51456f-54df-4af2-8760-bf5b1d6dfcfe","html_url":"https://github.com/AlinyKelly/pass-in-api-nodejs","commit_stats":null,"previous_names":["alinykelly/pass-in-api-nodejs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlinyKelly%2Fpass-in-api-nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlinyKelly%2Fpass-in-api-nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlinyKelly%2Fpass-in-api-nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlinyKelly%2Fpass-in-api-nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlinyKelly","download_url":"https://codeload.github.com/AlinyKelly/pass-in-api-nodejs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332598,"owners_count":20921854,"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":[],"created_at":"2024-12-18T18:19:05.077Z","updated_at":"2025-10-06T18:48:11.609Z","avatar_url":"https://github.com/AlinyKelly.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pass.in\n\nO pass.in é uma aplicação de **gestão de participantes em eventos presenciais**. \n\nA ferramenta permite que o organizador cadastre um evento e abra uma página pública de inscrição.\n\nOs participantes inscritos podem emitir uma credencial para check-in no dia do evento.\n\nO sistema fará um scan da credencial do participante para permitir a entrada no evento.\n\n## Requisitos\n\n### Requisitos funcionais\n\n- [x] O organizador deve poder cadastrar um novo evento;\n- [x] O organizador deve poder visualizar dados de um evento;\n- [x] O organizador deve poser visualizar a lista de participantes; \n- [x] O participante deve poder se inscrever em um evento;\n- [x] O participante deve poder visualizar seu crachá de inscrição;\n- [x] O participante deve poder realizar check-in no evento;\n\n### Regras de negócio\n\n- [x] O participante só pode se inscrever em um evento uma única vez;\n- [x] O participante só pode se inscrever em eventos com vagas disponíveis;\n- [x] O participante só pode realizar check-in em um evento uma única vez;\n\n### Requisitos não-funcionais\n\n- [x] O check-in no evento será realizado através de um QRCode;\n\n## Documentação da API (Swagger)\n\nPara documentação da API, acesse o link: https://pass-in-api-nodejs.onrender.com/docs\n\n## Banco de dados\n\nNessa aplicação vamos utilizar banco de dados relacional (SQL). Para ambiente de desenvolvimento seguiremos com o SQLite pela facilidade do ambiente.\n\n### Diagrama ERD\n\n\u003cimg src=\".github/erd.svg\" width=\"600\" alt=\"Diagrama ERD do banco de dados\" /\u003e\n\n### Estrutura do banco (SQL)\n\n```sql\n-- CreateTable\nCREATE TABLE \"events\" (\n    \"id\" TEXT NOT NULL PRIMARY KEY,\n    \"title\" TEXT NOT NULL,\n    \"details\" TEXT,\n    \"slug\" TEXT NOT NULL,\n    \"maximum_attendees\" INTEGER\n);\n\n-- CreateTable\nCREATE TABLE \"attendees\" (\n    \"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n    \"name\" TEXT NOT NULL,\n    \"email\" TEXT NOT NULL,\n    \"event_id\" TEXT NOT NULL,\n    \"created_at\" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n    CONSTRAINT \"attendees_event_id_fkey\" FOREIGN KEY (\"event_id\") REFERENCES \"events\" (\"id\") ON DELETE RESTRICT ON UPDATE CASCADE\n);\n\n-- CreateTable\nCREATE TABLE \"check_ins\" (\n    \"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n    \"created_at\" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n    \"attendeeId\" INTEGER NOT NULL,\n    CONSTRAINT \"check_ins_attendeeId_fkey\" FOREIGN KEY (\"attendeeId\") REFERENCES \"attendees\" (\"id\") ON DELETE RESTRICT ON UPDATE CASCADE\n);\n\n-- CreateIndex\nCREATE UNIQUE INDEX \"events_slug_key\" ON \"events\"(\"slug\");\n\n-- CreateIndex\nCREATE UNIQUE INDEX \"attendees_event_id_email_key\" ON \"attendees\"(\"event_id\", \"email\");\n\n-- CreateIndex\nCREATE UNIQUE INDEX \"check_ins_attendeeId_key\" ON \"check_ins\"(\"attendeeId\");\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falinykelly%2Fpass-in-api-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falinykelly%2Fpass-in-api-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falinykelly%2Fpass-in-api-nodejs/lists"}