{"id":49231318,"url":"https://github.com/devthomaseduardo/api_social_media","last_synced_at":"2026-04-24T12:03:07.555Z","repository":{"id":274991225,"uuid":"861057663","full_name":"devthomaseduardo/api_social_media","owner":"devthomaseduardo","description":"Este é o backend de uma rede social simples, desenvolvido com foco em aprendizado de autenticação, persistência de dados e segurança com tokens.  A API permite que usuários se registrem, façam login com JWT, publiquem postagens e gerenciem suas informações. Utiliza Node.js + Express, MongoDB com Mongoose","archived":false,"fork":false,"pushed_at":"2025-07-14T15:00:42.000Z","size":4503,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-14T09:28:49.043Z","etag":null,"topics":["api-rest","json","postman"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/devthomaseduardo.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":"2024-09-21T22:10:24.000Z","updated_at":"2025-09-04T14:24:25.000Z","dependencies_parsed_at":"2025-01-30T15:41:37.224Z","dependency_job_id":"7a94c8ed-5879-44ae-be12-03de37be8033","html_url":"https://github.com/devthomaseduardo/api_social_media","commit_stats":null,"previous_names":["odevthomas/api_social_media","devthomaseduardo/api_social_media"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/devthomaseduardo/api_social_media","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devthomaseduardo%2Fapi_social_media","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devthomaseduardo%2Fapi_social_media/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devthomaseduardo%2Fapi_social_media/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devthomaseduardo%2Fapi_social_media/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devthomaseduardo","download_url":"https://codeload.github.com/devthomaseduardo/api_social_media/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devthomaseduardo%2Fapi_social_media/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32222483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"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":["api-rest","json","postman"],"created_at":"2026-04-24T12:03:05.386Z","updated_at":"2026-04-24T12:03:07.547Z","avatar_url":"https://github.com/devthomaseduardo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧠 Rede Social - Backend\n\n![media](https://github.com/user-attachments/assets/343e5fb5-55b7-4cc0-9a6c-ec98b20153ab)\n\n## 📌 Descrição do Projeto\n\nEste é o backend de uma rede social simples, desenvolvido com foco em aprendizado de autenticação, persistência de dados e segurança com tokens.\n\nA API permite que usuários se registrem, façam login com JWT, publiquem postagens e gerenciem suas informações. Utiliza **Node.js + Express**, **MongoDB com Mongoose** e bibliotecas essenciais como **JWT** e **Bcrypt** para segurança de senhas.\n\n📦 Ideal como base para construir um front-end futuramente ou integrar com um app mobile.\n\n---\n\n## 🚀 Por que este projeto?\n\nA proposta foi **simular a estrutura de uma rede social funcional**, com ênfase em:\n\n- **Boas práticas de segurança e autenticação**\n- Estrutura REST simples e clara\n- Modularização do backend com controllers, rotas e middleware\n\n💬 Este projeto foi pensado para ser simples, funcional e escalável.\n\n---\n\n## 🛠 Tecnologias Utilizadas\n\n- **Node.js** – runtime JavaScript no servidor\n- **Express.js** – framework leve para rotas e middleware\n- **MongoDB** – banco NoSQL flexível\n- **Mongoose** – ODM para mapear objetos JS no MongoDB\n- **Bcrypt** – hash seguro de senhas\n- **JWT (JSON Web Token)** – autenticação via token\n\n---\n\n## 📋 Pré-requisitos\n\nCertifique-se de ter instalado em sua máquina:\n\n- [Node.js (v14+)](https://nodejs.org/)\n- [npm](https://www.npmjs.com/)\n- [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) ou MongoDB local\n\n---\n\n## 📦 Instalação\n\n1. Clone o repositório:\n```bash\ngit clone https://github.com/seu-usuario/social-media-backend.git\ncd social_media\n````\n\n2. Instale as dependências:\n\n```bash\nnpm install\n```\n\n3. Crie um arquivo `.env` com:\n\n```\nMONGODB_URI=mongodb+srv://usuario:senha@cluster.mongodb.net/nome-do-banco\nJWT_SECRET=sua_chave_secreta\nPORT=3000\n```\n\n4. Inicie o servidor:\n\n```bash\nnpm start\n```\n\n---\n\n## 📂 Estrutura do Projeto\n\n```\nsocial_media/\n├── db.js                    # Conexão com MongoDB\n├── models/                 # Modelos Mongoose (User, Post)\n│   ├── posts.js\n│   └── users.js\n├── routes/                 # Rotas para usuários e postagens\n│   ├── posts.js\n│   └── users.js\n├── middleware/             # Middleware de autenticação (JWT)\n│   └── auth.js\n├── server.js               # Arquivo principal da aplicação\n└── .env                    # Variáveis de ambiente\n```\n\n---\n\n## 🌐 Rotas da API\n\n### 👤 Usuário\n\n| Método | Rota                | Descrição                       |\n| ------ | ------------------- | ------------------------------- |\n| POST   | `/api/register`     | Registra um novo usuário        |\n| POST   | `/api/authenticate` | Faz login e retorna um JWT      |\n| GET    | `/api/user`         | Retorna dados do usuário logado |\n\n### 📝 Postagem\n\n| Método | Rota             | Descrição                   |\n| ------ | ---------------- | --------------------------- |\n| POST   | `/api/posts`     | Cria uma nova postagem      |\n| DELETE | `/api/posts/:id` | Deleta uma postagem pelo ID |\n\n---\n\n## 🔐 Autenticação com JWT\n\nApós fazer login via `/api/authenticate`, o servidor retorna um **token JWT**.\nEsse token deve ser incluído no header das requisições protegidas:\n\n```\nAuthorization: Bearer \u003cseu_token\u003e\n```\n\n---\n\n## 🧪 Testando com Postman ou Insomnia\n\n1. Faça o login e copie o token retornado\n2. Nas requisições protegidas, adicione o token no header\n3. Teste rotas como:\n\n   * POST `/api/posts`\n   * GET `/api/user`\n   * DELETE `/api/posts/:id`\n\n---\n\n## 🤝 Contribuindo\n\nSinta-se à vontade para contribuir!\n\n```bash\n# Fork o repositório\n# Crie uma branch\ngit checkout -b minha-feature\n\n# Faça commit\ngit commit -m 'feat: adicionando endpoint de comentários'\n\n# Push e pull request\n```\n\n---\n\n## 📜 Licença\n\nEste projeto está sob domínio público.\nUse, estude e modifique como quiser!\n\n---\n\n## ✉️ Contato\n\nDesenvolvido por **Thomas Eduardo**\n🔗 [thomaseduardo.online](https://thomaseduardo.online)\n📧 [thmedu@outlook.com](mailto:thmedu@outlook.com)\n📱 (19) 9 9904-2072\n\n---\n\n🔧 Projeto prático com Node.js e MongoDB para fins de estudo e portfólio.\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevthomaseduardo%2Fapi_social_media","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevthomaseduardo%2Fapi_social_media","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevthomaseduardo%2Fapi_social_media/lists"}