{"id":13708153,"url":"https://github.com/ajmarkow/resourcehub","last_synced_at":"2025-05-06T07:31:46.780Z","repository":{"id":124475195,"uuid":"335091647","full_name":"ajmarkow/resourcehub","owner":"ajmarkow","description":"The Serverless API for https://resource-hub.co. Built using Serverless Framework and AWS.  Frontend at https://github.com/ajmarkow/resourcehub-react","archived":false,"fork":false,"pushed_at":"2021-02-11T17:02:29.000Z","size":317,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-13T17:45:47.301Z","etag":null,"topics":["api-gateway","aws-lambda","cognito","rest-api","serverless","serverless-framework"],"latest_commit_sha":null,"homepage":"https://resource-hub.co","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/ajmarkow.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":"2021-02-01T21:41:09.000Z","updated_at":"2023-11-05T23:18:38.000Z","dependencies_parsed_at":"2023-03-13T23:46:16.463Z","dependency_job_id":null,"html_url":"https://github.com/ajmarkow/resourcehub","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/ajmarkow%2Fresourcehub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajmarkow%2Fresourcehub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajmarkow%2Fresourcehub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajmarkow%2Fresourcehub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajmarkow","download_url":"https://codeload.github.com/ajmarkow/resourcehub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252640066,"owners_count":21780866,"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-gateway","aws-lambda","cognito","rest-api","serverless","serverless-framework"],"created_at":"2024-08-02T22:01:57.582Z","updated_at":"2025-05-06T07:31:46.774Z","avatar_url":"https://github.com/ajmarkow.png","language":"JavaScript","readme":"# Re:source Hub API \n\nRe:Source Hub API, 2/10/2021\n\n**Built as interns at https://www.serverlessguru.com/**\u003cbr\u003e\nBy **AJ Markow, Ben White, Chloe Hellberg**\n\n\n## Description\n![](https://i.imgur.com/XuGiKEZ.png)\nRESTful API with full CRUD functionality using AWS Services such as, Lambda, API Gateway, DynamoDB, Cognito, and S3. Also uses the Stripe API to power a donation endpoint to the API.\n\n### Endpoints\n\n![](https://i.imgur.com/Jjk7pcp.png)\n\n**Authorization:**\n\n* Authorization is integrated with AWS Cognito.\n    * You’ll need to create a user pool and corresponding IAM role for user pool in order for authenticated users to be able to call the API\n* The posts/all endpoint is the only exception to needing authorization.  This returns all resourcehub posts.\n\n**Data Structure:** \n\n\n* All  posts endpoints consume and respond with JSON.  The Schema of posts is as follows:\n\n```\n    {\n      userId: event.requestContext.identity.cognitoIdentityId, //pulled from cognito\n      postId: uuid.v1(),\n      postBlurb: data.postBlurb,\n      postLink: data.postLink,\n      postLanguage: data.postLanguage,\n      postKeywords: data.postKeywords,\n      postRating: data.postRating,\n      attachment: data.attachment,\n      createdAt: Date.now(),\n    },\n```\n\n* The billing endpoint takes only POST requests and sends a donation of $1 to stripe account setup in API.  Stripe’s backend handles\n\n## Setup/Installation Requirements\n\n**Prerequisite:**\n\n* You need to have an AWS (Amazon Web Services) Account:\n    * Sign up at https://aws.amazon.com/\n* You need to install the serverless framework on your machine\n    * [Install serverless framework](https://www.serverless.com/)\n* npm i -g serverless\n* You need to install and login to the aws-cli\n    * [Install aws-cli](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)\n* You need a [Stripe](https://stripe.com/) api key\n* Create a DynamoDB table and take note of its name. \n* Create an S3 Bucket and take note of its name\n\n**Setup Instructions**\n\n* Clone this github repository to your machine.\n* Cd into the cloned repository folder.\n* Run npm install\n* Create a  .env file with the following values defined:\n\n```\nS3_BUCKET = your S3 bucket name\ntableName = the name of the DynamoDB table in your aws account\nstripeSecretKey = your stripe secret key.\n```\n\n* If you haven’t already set up the aws cli, set it up with your account credentials.\n* Run serverless deploy to create the resources in your AWS account.\n* After running serverless deploy, the serverless command line interface will tell you the urls and info about the created resources. This info is helpful to take note of so you don’t have to go searching through your AWS account to find it.\n\n## Known Bugs\n\nNo known bugs at this time. Please report if you find any [here](https://github.com/ajmarkow/resourcehub/issues).\n\n## Support and contact details\n\nBen White: https://github.com/BenW2140 \u003cbr\u003e\nAJ Markow: https://github.com/ajmarkow \u003cbr\u003e\nChloe Hellberg: https://github.com/chloehellberg \u003cbr\u003e\n\n## Technologies Used\n\n* AWS Services\n    * Amplify\n    * API Gateway\n    * Cognito\n    * IAM\n    * Lambda\n    * Route 53\n    * S3\n* Third Party APIs\n    * Stripe\n* Frameworks\n    * Serverless Framework\n* Runtime \n    * Node.js\n* Language \n    * JavaScript\n\n### License\n\n[MIT License](https://opensource.org/licenses/MIT)\n\nCopyright (c) 2021 **AJ Markow, Ben White, Chloe Hellberg**\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajmarkow%2Fresourcehub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajmarkow%2Fresourcehub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajmarkow%2Fresourcehub/lists"}