Development Environment
Software
Technologies
Development
- Text Editor / IDE : any, prefer:
VSCode
- Development can be done with any tool including simple text editors like
vim
/notepad
. However, the current repository follows formatting rules defined by Typescript/TSX mode on prettier which is why a highly configurable text editor is preferred likeVSCode
- Development can be done with any tool including simple text editors like
- JavaScript Package Manager:
npm
- The
npm
ornode package manager
is used to handle the organization of external tooling and packages. It allows us to see which modules are used as defined in thepackage.json/package-lock.json
- The
- Python Package Manager:
pip
pip
is used to manage all backend technologies.
Frameworks and Langauges:
JavaScript / TypeScript
- NextJs 13: ReactJs Wrapper with Server Rendering with API routes
- Jest: Testing for React Components used in NextJs pages
Python
- FastAPI: Backend framework with a modern Python runtime
Testing
- React Component Testing:
jest
- React Component Testing is done via
jest
since it is easy to integrate within the frontend workflow. Tests can be ran withnpm run test
. Thetest
command is alias to run ajest
coverage report on each tested component.
- React Component Testing is done via
Deployment on AWS
Currently1, the backend for this application will be hosted on AWS EC2 Virtual Machines as defined by the Terraform (Infrastructure as Code) layout.
Hardware
There is no hardware used in this project.
- The plan is to move to a containerized backend to easily trigger CI/CD updates. The current Terraform layout (EC2 VMs) is borrowed from a previous project.↩