{"id":29959162,"url":"https://github.com/lucasonazes/chat-backend","last_synced_at":"2025-08-03T21:42:46.979Z","repository":{"id":306324000,"uuid":"1024562477","full_name":"lucasonazes/chat-backend","owner":"lucasonazes","description":"A real-time chat API using Express, Prisma ORM, PostgreSQL, TypeScript, and Webhook integration","archived":false,"fork":false,"pushed_at":"2025-08-02T03:20:35.000Z","size":108,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-02T06:17:48.578Z","etag":null,"topics":["express","postgresql","prisma-orm","typescript","webhook"],"latest_commit_sha":null,"homepage":"","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/lucasonazes.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}},"created_at":"2025-07-22T22:49:55.000Z","updated_at":"2025-08-02T03:20:39.000Z","dependencies_parsed_at":"2025-07-25T01:58:46.203Z","dependency_job_id":null,"html_url":"https://github.com/lucasonazes/chat-backend","commit_stats":null,"previous_names":["lucasonazes/chat-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lucasonazes/chat-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasonazes%2Fchat-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasonazes%2Fchat-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasonazes%2Fchat-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasonazes%2Fchat-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasonazes","download_url":"https://codeload.github.com/lucasonazes/chat-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasonazes%2Fchat-backend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268618448,"owners_count":24279244,"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","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"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":["express","postgresql","prisma-orm","typescript","webhook"],"created_at":"2025-08-03T21:42:41.825Z","updated_at":"2025-08-03T21:42:46.911Z","avatar_url":"https://github.com/lucasonazes.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Real-Time Chat Backend\n\nThis is a Node.js backend for a real-time chat application built with Express, Socket.IO, and Prisma (PostgreSQL). It provides REST APIs for user and message management, authentication, and real-time messaging via websockets.\n\n## Features\n\n- User registration and login with JWT authentication\n- RESTful endpoints for users and messages\n- Real-time messaging using Socket.IO\n- Secure password hashing with bcrypt\n- Prisma ORM for database access (PostgreSQL)\n- Environment-based configuration\n- Linting and formatting with ESLint and Prettier\n- Commit message linting with Husky and Commitlint\n\n## Project Structure\n\n```\nsrc/\n  index.ts                # Entry point\n  config/prisma.ts        # Prisma client setup\n  controllers/            # Route and socket controllers\n  middleware/             # Authentication middleware\n  routes/                 # Express route definitions\n  sockets/                # Socket.IO setup\n  types/                  # Type definitions\n  utils/                  # Utility functions\nprisma/\n  schema.prisma           # Database schema\n  migrations/             # Prisma migrations\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js \u003e= 18\n- PostgreSQL database\n\n### Installation\n\n```sh\ngit clone https://github.com/lucasonazes/chat-backend.git\ncd chat-backend\nnpm install\n```\n\n### Environment Variables\n\nCreate a `.env` file in the root directory:\n\n```\nDATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/DATABASE\nJWT_SECRET=your_jwt_secret\nFRONT_URL=http://localhost:3000\nPORT=3001\n```\n\n### Database Setup\n\nRun Prisma migrations:\n\n```sh\nnpx prisma migrate dev\n```\n\n### Running the Server\n\n```sh\nnpm run dev\n```\n\n### Linting \u0026 Formatting\n\n```sh\nnpm run lint\nnpm run format\n```\n\n## API Endpoints\n\n- `POST /register` - Register a new user\n- `POST /login` - Login and receive JWT\n- `GET /users` - Get all users (auth required)\n- `GET /users/me` - Get current user (auth required)\n- `GET /users/:userId` - Get user by ID (auth required)\n- `POST /messages` - Send a message (auth required)\n- `GET /messages/:user1/:user2` - Get conversation between two users (auth required)\n\n## Real-Time Messaging\n\nClients connect via Socket.IO and authenticate using JWT. Events:\n\n- `join` - Join a user room\n- `sendMessage` - Send a message to another user\n- `receiveMessage` - Receive a message\n\n## License\n\nMIT\n\n## Author\n\nLucas Onazes Fensterseifer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasonazes%2Fchat-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasonazes%2Fchat-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasonazes%2Fchat-backend/lists"}