- Backend -
sam-with-postgres
- Frontend -
frontend
- StockManager -
admin-page/vite-project
Deployment instructions are contained within each component's respective directory (usually in a readme)
To deploy the backend locally you will need to install the AWS CLI, the AWS SAM CLI, DockerDesktop and the StripeCLI
After install run docker-compose up -d in .\sam-with-postgress\ to pull and build the database.
Then run sam build; sam-local start-api --docker-network host to run a copy of the api locally.
If you want to use stripe webhook you will also need to run the StripeCLI although this is not required.
I reccomend looking at the install instructions in the sam-with-postgress folder for more details.
To run the frontend pages go to ./frontend/ and run 'npm install; npm start' and the go to /admin-page/vite-project and run 'npm install; npm run dev' You will need to install Node.Js
Project management was done primarily through GitHub issues, we also communicated through Messenger and Zoom.
This project is an e-commerce website that allows users to browse and purchase products. The website is built using React and the backend is built as an AWS lambda function API with a DynamoDB database. The website also has an admin page that allows the admin to manage the products in the database. Payment processing is done though Stripe and the backend state is update to ensure data consistency between the programs.
Authentication is done through AWS Cognito and the website is hosted on AWS S3. The stock manager enforces MFA on all accounts for added security. Endpoints related to stock management are seperated from the main API and in a fully locked controller to ensure that only the stock manager can access them.
- Ecommerce website: EcogreenNZ
- StockManager: KashishWebManager
- The website could do with some more styling, some buttons need to provide more feedback to the user.
- The stock manager could be improved. The main stock management page works well but order tracking and customer information could be improved.
- The delivery system could be extended. Currently, it collects addresses and calculates delivery costs, but it is unable to generate delivery labels.
- Information could be cached on the frontend to reduce the number of API calls.
- Payment system could be extended to include more payment options (this is complete in principle but not deployment).
- The frontend could be extended to be more responsive to different screen sizes.
- I would not like to thank AWS for their terrible documentation and virtually useless API specification.
- I would like to thank Stripe for their excellent documentation and the fact that they have a great API.
-
George:
- Primary Backend developer
- General Frontend improvements
- Database
- Other AWS service integration
- Development Toolchain
- Authentication system
- Stripe integration
-
Jason:
- Frontend primarily the main website.
-
Mia:
- Frontend, primarily the admin-page but also the main website.
-
CiCi:
- NZpost API system.
-
James:
- PayPal system.
-
Jesse: