{"id":19025280,"url":"https://github.com/dz1kill/backend_blog","last_synced_at":"2026-04-08T18:31:00.842Z","repository":{"id":161433711,"uuid":"635786649","full_name":"dz1kill/backend_blog","owner":"dz1kill","description":"This backend implements custom CRUD, blog post CRUD, JWT token authorization.","archived":false,"fork":false,"pushed_at":"2023-05-05T16:19:42.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-11T03:36:56.519Z","etag":null,"topics":["docker-compose","expressjs","jwt","nodejs","postgresql","seq","sequelize-typescript","swagger","typescript"],"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/dz1kill.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":"2023-05-03T13:02:35.000Z","updated_at":"2023-05-05T16:24:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"1fb61be0-ebb1-469f-82ff-ea01f774d1cb","html_url":"https://github.com/dz1kill/backend_blog","commit_stats":null,"previous_names":["dz1kill/backend_blog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dz1kill/backend_blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz1kill%2Fbackend_blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz1kill%2Fbackend_blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz1kill%2Fbackend_blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz1kill%2Fbackend_blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dz1kill","download_url":"https://codeload.github.com/dz1kill/backend_blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dz1kill%2Fbackend_blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31568565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"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":["docker-compose","expressjs","jwt","nodejs","postgresql","seq","sequelize-typescript","swagger","typescript"],"created_at":"2024-11-08T20:43:05.277Z","updated_at":"2026-04-08T18:31:00.819Z","avatar_url":"https://github.com/dz1kill.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description\n\nThis backend implements custom CRUD, blog post CRUD, JWT token authorization.  \nDatabase structure: The 'users' table has a one-to-many relationship with the 'posts' table,  \n'posts' has a one-to-many relationship with the 'post_images' table.  \nThis allows us to upload multiple images.  \nAnd if necessary, add new tables to store other types of data without changing the current structure.  \nDocker-compose is used to create images and organize work with PostgreSQL.  \nIt is possible to attach images to the post.  \nAll images are stored on cloud storage \"cloudinary.com\".\n\nAn unauthorized user has the ability to:\n\n1. Registration.\n2. Authorization.\n3. View all registered users.\n4. Viewing all posts (per-page pagination implemented).\n\nAn authorized user has the ability to:\n\n1. Update your data.\n2. Change password.\n3. Create posts.\n4. Upload images to posts.\n5. Delete images.\n6. Update posts.\n7. Delete posts.\n8. Viewing a list of all your posts (per-page pagination implemented).\n\nFilling tables with data occurs through migrations.\n\n## Stack:\n\nStack: Node.js, Express, Postgresql, Sequelize-typescript, Swagger, Typescript, Streamifier, Docker-compose.\n\n## Running the app\n\n```bash\n\n#You need to add the .env file to the root folder of the project, add the local.json and config.json files to the config folder.\n#Examples : env.text , local.json.data , config.json.data.\n\n# In the console, run the build and launch images with the command:\n$ docker-compose up\n\n# Wait until the server starts.\n\n# Create tables in the database using the \"migrations\" command:\n$ docker-compose exec backend_blog npm run migrate:start\n\n```\n\n## Test\n\nDocumentation (Swagger UI) is available at: [link] http://localhost:3000/api/\n\nnode v16.14.2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdz1kill%2Fbackend_blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdz1kill%2Fbackend_blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdz1kill%2Fbackend_blog/lists"}