{"id":31062123,"url":"https://github.com/pymarcus/basic_login_system","last_synced_at":"2026-02-27T03:03:03.087Z","repository":{"id":132211415,"uuid":"585444237","full_name":"PyMarcus/basic_login_system","owner":"PyMarcus","description":"Atividade de programação web 05-01-23","archived":false,"fork":false,"pushed_at":"2023-01-06T00:10:32.000Z","size":81,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T12:05:17.688Z","etag":null,"topics":["css","flask","html","login-system","python"],"latest_commit_sha":null,"homepage":"","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/PyMarcus.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-05T07:26:30.000Z","updated_at":"2023-09-13T11:52:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"4e1eead7-16a0-4a71-999b-8e1b01036735","html_url":"https://github.com/PyMarcus/basic_login_system","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PyMarcus/basic_login_system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMarcus%2Fbasic_login_system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMarcus%2Fbasic_login_system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMarcus%2Fbasic_login_system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMarcus%2Fbasic_login_system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PyMarcus","download_url":"https://codeload.github.com/PyMarcus/basic_login_system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMarcus%2Fbasic_login_system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29883111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"online","status_checked_at":"2026-02-27T02:00:06.759Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["css","flask","html","login-system","python"],"created_at":"2025-09-15T11:49:02.240Z","updated_at":"2026-02-27T03:03:03.082Z","avatar_url":"https://github.com/PyMarcus.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# basic_login_system\n\n## Atividade de programação web 05-01-23\n\nA tarefa consiste em fazer um sistema básico de login,porém, implementei algumas funcionalidades a mais.\u003cbr\u003e\nAlém disso, ao invés de utilizar Java Script, optei por utilizar o microframework web Python, chamado Flask: https://flask.palletsprojects.com/en/2.2.x/\n\n\n### Login route ( /login )\n\n![image](https://user-images.githubusercontent.com/88283829/210840573-3d27d1f2-4caf-4b1e-9642-aecc1d351aab.png)\n\n\n### Signup route  ( /signup )\n\n![image](https://user-images.githubusercontent.com/88283829/210840082-08d0c486-8773-42ff-a138-0bc16e5cb829.png)\n\n\n### Invalid route \n\n![image](https://user-images.githubusercontent.com/88283829/210835842-5e2898f4-aa69-41d9-a6d8-67943c773382.png)\n\n\n### Login success ( /profile )\n\n![image](https://user-images.githubusercontent.com/88283829/210840334-d380b595-1f62-4d36-8a64-1957781c4a4f.png)\n\n\n### Possíveis status code tratados, no backend, do protocolo HTTP:\n\n✔️ [Status 200] Success\u003cbr\u003e\n👌  [Status 201] Update\u003cbr\u003e\n🚗 [Status 302] Redirect\u003cbr\u003e\n❌ [Status 404] Not found\u003cbr\u003e\n\n### database utilizado:\n\n🗳️ SQLite3\n\n\n### Tecnologias Frontend:\n\n5️⃣ HTML5 \u003cbr\u003e\n🖌️ CSS3 \u003cbr\u003e\n\n### Tecnologias Backend:\n\n🐍 Python3.10.5\n\n### Testado no Browser:\n\n🦊 Firefox\n\n### Sistema Operacional:\n\n🐉  Debian (Linux)\n\n### Dependências e versões disponíveis no arquivo requirements.txt, que se encontra neste diretório.\n\nPara instalar:\n\n    pip install -r requirements.txt\n    \n Feito isso, as dependências necessárias serão baixadas.Contudo, é importante ter algum gerenciador de pacotes, no caso, utilizo o pip3.\n\n\n### Criar o banco de dados, se desejar:\n\n![image](https://user-images.githubusercontent.com/88283829/210887065-b399a0a7-d2d7-4508-af2b-d25ab6e06fc9.png)\n\n\n### Como executar localmente:\n\nApontar a variável de ambiente para o arquivo main.py\n\n    $env:FLASK_APP=\"main.py\"\n    \nExecutar:\n\n     flask run --reload\n     \n### Patterns utilizado: \n\n\u003cb\u003eFactory\u003c/b\u003e \u003cbr\u003e\n\nO Factory Method é um padrão criacional de projeto que fornece uma interface para criar objetos em uma superclasse, mas permite que as subclasses alterem o tipo de objetos que serão criados\n\n\n### Diagrama do Database:\n\n![image](https://user-images.githubusercontent.com/88283829/210848832-463e8988-6994-4e44-8adb-dae146835db2.png)\n\n\n### 🔒 Segurança da aplicação:\n\nA aplicação conta com autenticação (confirma a integridade do usuário) e autorização (permite acesso aos recursos).\n\n\u003cbr\u003e\nAs senhas são salvas no database com a criptografia sha256:\u003cbr\u003e\n\"O SHA256 é considerado extremamente seguro, ao mesmo tempo em que possibilita um alto poder computacional. Graças a essas características ele é utilizado para mineração de bitcoins e pela própria NSA nos Estados Unidos.\" - Telium\n\n![image](https://user-images.githubusercontent.com/88283829/210898558-80f6a767-a0ee-4ddd-a0ec-32565fa9017d.png)\n\nSomado a isso, há a verificação se o usuário já está registrado no banco ou se o hash da senha são correspondentes.\n\n![image](https://user-images.githubusercontent.com/88283829/210899253-44d97b8e-4656-4ecc-a030-f244e6fdc3ad.png)\n\nHá também a proteção contra acesso não autorizado a uma rota privada:\n\n![image](https://user-images.githubusercontent.com/88283829/210902184-58975f65-38cb-4d95-9522-0e20695e2753.png)\n\n\n### Se tudo estiver correto, o login é realizado:\n\nO nome do usuário comprava a existência da sessão criada\n\n![image](https://user-images.githubusercontent.com/88283829/210902271-aab793e6-3892-455f-8040-65177579ba20.png)\n\n### Logout\n\nO sistema de logout verifica ,primeiramente, se o usuário está logado.Se estiver, basta clicar no link e isto é efetuado.\n\n![image](https://user-images.githubusercontent.com/88283829/210902900-21df1012-7734-4cdf-ada7-0a3075f83c17.png)\n\n\n### CONCLUSÃO\n\nApós efetuar o logout, o usuário será redirecionado a página index:\n\n![image](https://user-images.githubusercontent.com/88283829/210903303-d4c52285-3840-4188-ad60-4b280c8b02d6.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpymarcus%2Fbasic_login_system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpymarcus%2Fbasic_login_system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpymarcus%2Fbasic_login_system/lists"}