https://github.com/cartercobb/library-pt
Library management system for Psychology Today code challenge
https://github.com/cartercobb/library-pt
aws aws-lambda golang react serverless
Last synced: 2 months ago
JSON representation
Library management system for Psychology Today code challenge
- Host: GitHub
- URL: https://github.com/cartercobb/library-pt
- Owner: CarterCobb
- License: mit
- Created: 2022-05-19T23:01:55.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-23T15:09:17.000Z (about 4 years ago)
- Last Synced: 2025-03-15T05:41:20.482Z (over 1 year ago)
- Topics: aws, aws-lambda, golang, react, serverless
- Language: JavaScript
- Homepage:
- Size: 25.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Library Management System
This repo contains a serverless REST API and frontend to manage library books.
**The LTS version of this project is on the [main branch](https://github.com/CarterCobb/library-PT). _Newest features on the [development branch](https://github.com/CarterCobb/library-PT/tree/development)_**
## Technology Stack
### Main Technologies
- Backend: [Go/Golang](https://go.dev/)
- Frontend: [React.js](https://reactjs.org/)
### Deployment/Hosting
- [AWS](https://aws.amazon.com/)
- [AWS Lambda](https://aws.amazon.com/lambda/)
- [AWS API Gateway](https://aws.amazon.com/api-gateway/)
- [AWS DynamoDB](https://aws.amazon.com/dynamodb/)
- [AWS Amplify](https://aws.amazon.com/amplify/)
### CI/CD
- Infrastructure: [Serverless Framework](https://www.serverless.com/)
- [GitHub Actions](https://github.com/features/actions)
- See the workflow for this repo [here](https://github.com/CarterCobb/library-PT/blob/main/.github/workflows/main.yml)
### Others
- [React Redux](https://react-redux.js.org/)
- [Ant Design](https://ant.design/)
## Requirements
Using whichever language(s)/stack that is best suited, create a library management system per the requirements below. Please submit your code via a publicly available repository.
- API for CRUD of a books, managing title, author, isbn, description
- Ability to manage books through a web interface
- Ability to check in and check out a book
- Ability to track state changes for a book
- Report that contains the current state of all books
## Build/Run
### Local Building and Deployment
- Run the `build.bat` file found [here](https://github.com/CarterCobb/library-PT/blob/main/build.bat)
### GitHub Actions
The project is re-deployed to AWS through a GitHub Action. Worflow found [here](https://github.com/CarterCobb/library-PT/blob/main/.github/workflows/main.yml) That action is triggered by a cleased PR on the `main` branch. Please note that this only works for the code [owner](https://github.com/CarterCobb)'s repo.
If you opt to bring up this architecture on your own AWS account through the GitHub action, add your AWS creds:
In the repo secrets add the following secrets:
- `AWS_ACCESS_KEY_ID` w/ your AWS access key id as it's value
- `AWS_SECRET_ACCESS_KEY` w/ your AWS secret access key as it's value