{"id":21017470,"url":"https://github.com/rootz491/turt1e","last_synced_at":"2026-04-21T16:01:54.408Z","repository":{"id":40464424,"uuid":"389602892","full_name":"rootz491/turt1e","owner":"rootz491","description":"something existential","archived":false,"fork":false,"pushed_at":"2023-03-08T03:45:27.000Z","size":11082,"stargazers_count":1,"open_issues_count":12,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T14:06:22.627Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/rootz491.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}},"created_at":"2021-07-26T11:03:02.000Z","updated_at":"2023-04-11T15:38:53.000Z","dependencies_parsed_at":"2023-02-17T03:01:18.283Z","dependency_job_id":null,"html_url":"https://github.com/rootz491/turt1e","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootz491%2Fturt1e","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootz491%2Fturt1e/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootz491%2Fturt1e/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootz491%2Fturt1e/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rootz491","download_url":"https://codeload.github.com/rootz491/turt1e/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243447642,"owners_count":20292452,"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":[],"created_at":"2024-11-19T10:19:32.932Z","updated_at":"2025-12-29T16:40:03.685Z","avatar_url":"https://github.com/rootz491.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# turt1e\n\ni dont know why i named it `this.name` but it's cool 😂\n\n\n*  so this is a `react` webapp backed by `express.js`;\n*  anyone can make a post;\n    *   post consist of 3 things:\n        1. name\n        2. caption\n        3. image\n*   anyone can also delete post.\n*   { images } are stored in `Cloudinary`\n*   { name, caption } are stored in `mongodb`\n\n---\n\n#   imp links\n\n*   link to [mongodb collection](https://cloud.mongodb.com/v2/6090eeb50c0db149bafc5508#metrics/replicaSet/60fe92dcb605e117959fe9c0/explorer/React-app-0/posts/find)\n*   link to [cloudinary bucket](https://cloudinary.com/console/c-ad683e5b8f8cb3d4b5036e79a830e3/media_library/folders/b067f9db70086538c4d0f079541ca14e)\n*   link to [react bootstrap components](https://react-bootstrap.github.io/components/alerts/)\n*   link to [react dynamic route component video](https://www.youtube.com/watch?v=XoK1a4bYgVw) by Ben Awad.\n    *   they are basically similar to nodejs dynamic routes, with and can be accessed thru prop's certain property.\n    *   here's [component](./views/src/components/DetailedPost.js) in which they're implemented!\n\n\n---\n\n#   code\n\n*   `/views` folder is where React / frontend part located.\n*   `/` (root) belongs to nodejs / bakend.\n*   All API keys and credentials are at `.env` which is at my machine only.\n*   All API routes are [here](./controllers/post.js)\n    *   Add post is really interesting because, it uploads image to `cloudinary` first and then add data to `mongodb`.\n    *   Delete post is also awesome because, it fisrt delete data from `mongodb` and then deletes image from `cloudinary`.\n*   all methods to interact with mongodb are [here](./modals/post.js)\n    *   it includes add post, get all posts, get post by id, delete post by id.\n\n---\n\n##  screenshots\n\n\u003e   /\n\n![img1](./img/home.png)\n\n\u003e   /post\n\n![img2](./img/post.png)\n\n\u003e   /show\n\n![img3](./img/show_all.png)\n\n\u003e   /show/:id\n\n![img4](./img/show_id.png)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frootz491%2Fturt1e","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frootz491%2Fturt1e","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frootz491%2Fturt1e/lists"}