{"id":18344124,"url":"https://github.com/alin00r/threads-clone-backend-nodejs","last_synced_at":"2026-04-09T12:44:50.012Z","repository":{"id":193477858,"uuid":"688877395","full_name":"alin00r/Threads-Clone-Backend-NodeJs","owner":"alin00r","description":"A Social Media Rest API built with Node.JS , Express and Mongo Db","archived":false,"fork":false,"pushed_at":"2023-09-08T12:22:09.000Z","size":38,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T14:16:33.357Z","etag":null,"topics":["api-rest","bcrypt","express","javascript","jwt","mongodb","mongoose","nodejs","restful-api","social-media","social-network"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/alin00r.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":"2023-09-08T09:42:23.000Z","updated_at":"2024-05-17T04:57:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"297d29de-e39b-44fd-9664-c7f6a436cca8","html_url":"https://github.com/alin00r/Threads-Clone-Backend-NodeJs","commit_stats":null,"previous_names":["alin00r/threads-clone-backend-nodejs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FThreads-Clone-Backend-NodeJs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FThreads-Clone-Backend-NodeJs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FThreads-Clone-Backend-NodeJs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FThreads-Clone-Backend-NodeJs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alin00r","download_url":"https://codeload.github.com/alin00r/Threads-Clone-Backend-NodeJs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248121200,"owners_count":21051093,"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":["api-rest","bcrypt","express","javascript","jwt","mongodb","mongoose","nodejs","restful-api","social-media","social-network"],"created_at":"2024-11-05T21:04:57.187Z","updated_at":"2025-12-30T22:36:50.180Z","avatar_url":"https://github.com/alin00r.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Threads-Clone-Backend-NodeJs\n`A Social Media Rest API built with Node.JS , Express and Mongo Db`\n\n## Features:\n- Make and Like posts, comments, replies\n- See likes for posts, comments, replies\n- Follow, unfollow\n- Update user information\n- User login, sign up, and authentication\n- Image uploads\n- See feed post of users you followed them\n\n## Run\nTo run the application, follow these steps:\n\n1. Set up environmental variables:\n   Create a file named `.env` at the root of the project and add the following lines to it:\n   ```\n   MONGO_URI=\u003cyour_mongo_uri\u003e\n   JWT_SEC =\u003cyour_JWT_secret\u003e\n   ```\n   Replace `\u003cyour_mongo_uri\u003e` and `\u003cyour_JWT_secret\u003e` with the appropriate values you obtained for your MongoDB Atlas database and JWT secret respectively.\n\n2. Navigate to the \"DB\" folder:\n   Go to the \"DB\" folder in the project directory, and you'll find files related to your MongoDB database.\n\n3. Fill your MongoDB Atlas database:\n   Use the files in the \"DB\" folder to populate your MongoDB Atlas database with the required data for the application to function correctly.\n\n4. Install dependencies:\n   Open a terminal or command prompt in the root of the project directory, and run the following command to install the required dependencies:\n   ```\n   npm install\n   ```\n\n5. Start the application:\n   After the installation is complete, run the following command in the terminal to start the application:\n   ```\n   npm start\n   ```\n\nNow the application should be up and running. You can access it through your browser at the specified URL \n```(usually http://localhost:3000)```. \nMake sure your MongoDB Atlas database is properly connected, and you can interact with the application.\n\n## Technology\n\nThe application is built with:\n\n- Node.js version 18.17.0 LTS\n- MongoDB version 7.4.0\n- Express version 4.18.2\n- bcrypt  version  5.1.0 \n- dotenv version 16.3.1 \n- jsonwebtoken version 9.0.1\n- mongoose version 7.4.0\n- nodemon version 3.0.1\n- route version 0.2.5\n\n\n## Database\n\nAll the models can be found in the models directory created using mongoose.\n\n### User Schema:\n- name (String, required)\n- username (String, required, unique)\n- email (String, required, unique)\n- password (String, required, minLength: 6)\n- profilePic (String, default: \"\")\n- followers (Array of Strings Of Users Ids, default: [])\n- following (Array of Strings  Of Users Ids, default: [])\n- bio (String, default: \"\")\n### postSchema:\n- postedBy (mongoose.Schema.Types.ObjectId, ref: \"User\", require: true)\n- text (String, maxLength: 10000)\n- img (String)\n- likes (Array of mongoose.Schema.Types.ObjectId, ref: \"User\", default: [])\n- replies (Array)\n  - userId (mongoose.Schema.Types.ObjectId, ref: \"User\", required: true)\n  - text (String, required: true)\n  - userProfilePic (String)\n  - username (String)\n\n\n## Scripts\n```bash\nnpm run start      # starts server\nnpm run dev        # starts server in watch mode, waiting for file changes\n```\n\n\n\n## License\n\n[![License](https://img.shields.io/:License-MIT-blue.svg?style=flat-square)](http://badges.mit-license.org)\n\n- MIT License\n- Copyright 2023 © - MIT License\n- [Ali Nour](https://github.com/alin00r)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falin00r%2Fthreads-clone-backend-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falin00r%2Fthreads-clone-backend-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falin00r%2Fthreads-clone-backend-nodejs/lists"}