{"id":26045151,"url":"https://github.com/amir1887/simple-blog-platform","last_synced_at":"2026-04-13T05:45:01.078Z","repository":{"id":280702163,"uuid":"942881501","full_name":"Amir1887/Simple-Blog-Platform","owner":"Amir1887","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-04T20:39:30.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T21:32:10.268Z","etag":null,"topics":["axios","jwt","nodejs","postgresql","reactjs","rest-api","typescript"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Amir1887.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-03-04T20:37:05.000Z","updated_at":"2025-03-04T20:41:57.000Z","dependencies_parsed_at":"2025-03-04T21:32:13.070Z","dependency_job_id":"8485576b-f773-4cca-8c76-cc8f8594f37d","html_url":"https://github.com/Amir1887/Simple-Blog-Platform","commit_stats":null,"previous_names":["amir1887/simple-blog-platform"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir1887%2FSimple-Blog-Platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir1887%2FSimple-Blog-Platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir1887%2FSimple-Blog-Platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir1887%2FSimple-Blog-Platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Amir1887","download_url":"https://codeload.github.com/Amir1887/Simple-Blog-Platform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242451612,"owners_count":20130436,"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":["axios","jwt","nodejs","postgresql","reactjs","rest-api","typescript"],"created_at":"2025-03-07T19:32:05.131Z","updated_at":"2025-12-31T00:47:19.503Z","avatar_url":"https://github.com/Amir1887.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple-Blog-Platform\n\nDevelop a fullstack blog application where users can create and view posts.\n\nRequirements:\n\n- Use React.js with TypeScript for the front end.\n- Display a list of blog posts with titles and authors.\n- Allow users to view a post's full content.\n- Provide a form to create new blog posts.\n- Use Axios or Fetch API to interact with the backend.\n- Implement a REST API using Node.js and ExpressJS.\n- Each post should have a title, author, content, and creation date.\n- Store posts in a PostgreSQL (or MongoDB) database.\n- Handle validation and errors properly.\n  \nBonus Points (Optional):\n\n- Add user authentication (signup/login) using JWT.\n- Implement comments for each blog post.\n-  Deploy the project on Vercel (frontend) and Railway/Render (backend).\n\n# How the Logic Flows (of Registration, Login...)\n\n# 1.Client Sends a Request:\n\n   - The client (frontend) sends an HTTP request to a specific endpoint (e.g., POST /auth/register).\n   - OR Client sends a request to an endpoint (e.g., GET /posts).\n\n# 2.Route Handles the Request:(defines the API endpoints and maps them to the appropriate controller functions.)\n   - The route (routes/auth.routes.js) maps the request to the appropriate controller function (registerUser).\n   - OR Route maps the request to the appropriate controller function (e.g., getAllPostsHandler).\n\n# 3.Controller Processes the Request:\n\n   - The controller (controllers/auth.controller.js) extracts data from the request (e.g., email and password from the request body).\n\n   - It calls the corresponding service (auth.service.js) to perform the business logic (e.g., user registration OR getAllPosts).\n\n# 4.Service Executes Business Logic:(service = dealing with database)\n\n  -  The service (services/auth.service.js) performs the necessary operations (e.g., hashing the password, saving the user to the database).\n\n   - It returns the result (e.g., the newly created user) to the controller.\n\n# 5.Controller Sends the Response:(all about giving feedback)\n\n  -  The controller receives the result from the service and sends a response back to the client (e.g., 201 Created with the user data).\n  - It calls the appropriate service functions and sends the response back to the client.\n# Visualization\nClient (Frontend)\n       ↓\nRoutes (auth.routes.js)\n       ↓\nControllers (auth.controller.js)\n       ↓\nServices (auth.service.js)\n       ↓\nDatabase (Prisma)\n\n\n\n\nsrc/\n├── controllers/\n│   ├── auth.controller.js\n│   ├── post.controller.js\n├── middleware/\n│   ├── auth.middleware.js\n├── models/\n│   ├── user.model.js  # Prisma will handle this\n├── routes/\n│   ├── auth.routes.js\n│   ├── post.routes.js\n├── services/\n│   ├── auth.service.js\n│   ├── post.service.js\n├── utils/\n│   ├── jwt.utils.js\n├── prisma/\n│   ├── schema.prisma\n├── app.js\n├── server.js","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famir1887%2Fsimple-blog-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famir1887%2Fsimple-blog-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famir1887%2Fsimple-blog-platform/lists"}