{"id":15960421,"url":"https://github.com/bobmayuze/vercipe","last_synced_at":"2025-03-17T21:31:43.380Z","repository":{"id":67196111,"uuid":"118815896","full_name":"bobmayuze/Vercipe","owner":"bobmayuze","description":"Version control based recipe for Spring 18 ITWS 4500 course","archived":false,"fork":false,"pushed_at":"2018-04-28T03:29:08.000Z","size":14716,"stargazers_count":5,"open_issues_count":5,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-28T05:24:50.735Z","etag":null,"topics":["angular-material","angular5","express","recipe","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/bobmayuze.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":"2018-01-24T20:06:49.000Z","updated_at":"2018-04-28T03:29:09.000Z","dependencies_parsed_at":"2023-03-11T01:13:26.579Z","dependency_job_id":null,"html_url":"https://github.com/bobmayuze/Vercipe","commit_stats":{"total_commits":133,"total_committers":5,"mean_commits":26.6,"dds":0.443609022556391,"last_synced_commit":"853956783de34071562ed44243ef3190d306bfe8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobmayuze%2FVercipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobmayuze%2FVercipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobmayuze%2FVercipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bobmayuze%2FVercipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bobmayuze","download_url":"https://codeload.github.com/bobmayuze/Vercipe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243886391,"owners_count":20363727,"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":["angular-material","angular5","express","recipe","typescript"],"created_at":"2024-10-07T15:02:34.212Z","updated_at":"2025-03-17T21:31:43.375Z","avatar_url":"https://github.com/bobmayuze.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vercipe\nVersion control based recipe for Spring 18 ITWS 4500 course. \nAll project materials such as the Proposal and Presentation can be found in the MISC folder.\nA server hosting our project can be found here: http://52.170.95.42/\nOur slides and notes for the final presentation can be found here: https://docs.google.com/presentation/d/10IKhqsdQ-_AgRApVFVHrB_aBnAiZC4t5sGASLMGvUnw/edit?usp=sharing\n\n## Getting Started\nBefore you started, make sure you have docker installed and can run the hello-world demo.\n\n1. Clone the repo\n\n```\n$ git clone https://github.com/bobmayuze/Vercipe\n```\n\n2. Build images. You will not see the db connected this time, don't worry about it. \n```\n$ ./scripts/init.sh\n```\n\nAfter you see MongoDB says\n``` \nmongo              | MongoDB configured successfully. You may now connect to the DB.\nmongo              | $cmd\n```\n\nPress crtl + c to stop all these containers.\n\n\n3. Rebuild containers, and migrate mongo Database. Firstly restart all containers:\n```\n$ ./scripts/init.sh \n```\n\nThen, run DB_Migration script:\n```\n$ ./scripts/DB_Migration.sh\n```\n\n\n4. Start a new terminal, and cd into vercipe_frontend/frontend folder\n\n5. Install the dependencies \n```\n$ npm install\n```\n\n6. Make sure you [ng-cli](https://cli.angular.io/) installed, then start the frontend dev mode\n```\n$ ng serve -o\n```\n\nYour browser should open a window at port 4200. If not, you can go to port 4200 to check it.\n\n\n\n## Project proposals:\n\n1. Proposal.pdf\n2. Vercipe Project Timeline - Gantt Chart.pdf\n\n\n\nData Schema for a recipe\n```\n{\n\t_id : ObjectId,\n\ttitle: String,\n    creator: String,\n\tcreator_Email: String,\n\tmaterials: [String],\n\tinstructions: [String],\n\tcreated_at: Unix Timestamp,\n\tversion: Int,\n\tprevious_version: String\n}\n\n```\n\n\n## Endpoint List:\n\n### Default Route :/\n\n#### [1] Get default api to make sure backend is successfully set\n```\nEndpoint: GET /\nAuthorization: none\nRequest Body: none\nResponse: 200 JSON object, {\"msg\" : 'hello world'}\n```\n\n#### [2] Create a new recipe\n```\nEndpoint: POST /newRecipe\nAuthorization: none\nRequest Body: \n{\n    title: string\n    creator: string\n    materials: array of string\n    version: number\n    previous_version: ObjectId\n} \nResponse: 200 JSON object, {\"status\" : 'success'}\n```\n\n#### [3] Get all Recipes as json array\n```\nEndpoint: GET /allRecipes\nAuthorization: none\nRequest Body: none\nResponse: 200, Ordered (by index) JSON Array of Recipe Objects\n```\n\n#### [4] Find recipe by ObjectId\n```\nEndpoint: POST /recipes\nAuthorization: none\nRequest Body: {\"id\":ObjectId}\nResponse: 200, one Recipe Object\n```\n\n#### [5] Find recipe by creator's email\n```\nEndpoint: POST /recipes/byMail\nAuthorization: none\nRequest Body: {\"email\":String}\nResponse: 200, Ordered (by index) JSON Array of Recipe Objects\n```\n\n#### [6] Find recipe by recipe's title\n```\nEndpoint: POST /recipes/byTitle\nAuthorization: none\nRequest Body: {\"title\":String}\nResponse: 200, Ordered (by index) JSON Array of Recipe Objects\n```\n\n#### [7] Delete recipe by recipe's ObjectId\n```\nEndpoint: DELETE /recipes\nAuthorization: none\nRequest Body: {\"title\":String}\nResponse: 200, Ordered (by index) JSON Array of Recipe Objects\n```\n\n#### [8] Clone a recipe ( Not Finished yet)\n```\nEndpoint: POST /recipes/forkById\nAuthorization: Log in as user\nRequest Body: \n{\n    title: String\n    materials: [String]\n    creator: String\n}\nResponse: 200, if success\n```\n\n#### [9] Get Previous Recipe Json Object of based on ID\n```\nEndpoin: POST /recipe/previous\nAuthorization: Null\nRequest Body:\n{\n    \"id\": string\n}\nResponse: 200, if success\n```\n\n#### [10] Get IDs of all previous versions of a recipe in most recent to oldest order\n```\nEndpoin: POST /recipes/previous/all\nAuthorization: Null\nRequest Body:\n{\n    \"id\": string\n}\nResponse: 200, if success\n{\n    \"versions\": [string]\n}\n```\n\n#### [11] Get recipes by logged in user name (Creator)\n```\nEndpoint: POST /recipes/byUserName\nAuthorization: none\nRequest Body: {\"creator\":String}\nResponse: 200, \n{\n    \"result\":[recipes]\n}\n```\n\n\n### User Auth : /users\n\n#### [1] Default, test encrypt function\n```\nEndpoint: GET /\nAuthorization: none\nRequest Body: none\nResponse: 200 JSON object, {\"msg\" : 'hello world'}\n```\n\n#### [2] Sign Up\n```\nEndpoint: POST /sign_up\nAuthorization: none\nRequest Body: \n{\n\tnewUser.email : String\n    newUser.username : String\n    newUser.password : String\n    newUser.passwordConf : String\n}\nResponse: 200, if success\n```\n\n#### [3] Login as user\n```\nEndpoint: POST /sign_up\nAuthorization: none\nRequest Body: \n{\n    newUser.username : String\n    newUser.password : String\n}\nResponse: 200, if success\n```\n\n#### [4] demo endpoint to test if user is logged in\n```\nEndpoint: GET /dashboard\nAuthorization: Log in as user\nRequest Body: None\nResponse: 200, if success\n```\n\n#### [5] Get all recipes created by a specific user\n```\nEndpoint: POST /allRecipes\nAuthorization: None\nRequest Body:\n{\n    \"creater_email\" : String\n}\nREsponse: { message : [Recipe]}\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobmayuze%2Fvercipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbobmayuze%2Fvercipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbobmayuze%2Fvercipe/lists"}