Frontend
![](https://tarheels.live/comp523teamc/wp-content/uploads/sites/4705/2023/11/image.png)
Backend
![](https://tarheels.live/comp523teamc/wp-content/uploads/sites/4705/2023/10/image-1024x400.jpg)
- New Architecture (2023 Nov)
![](https://tarheels.live/comp523teamc/wp-content/uploads/sites/4705/2023/12/arch-1.png)
Platform Selection:
Languages:
- Python (using PyCharm IDE)
- Client Preference
- Selected by previous Team
- The client had some previous code written in Python
- Provides great functionality in terms of efficiently and concisely calculating the required data for the simulation, allows OOP, additionally has a great set of mathematical and graphing libraries that are useful for this project.
- Python is very powerful for modeling and doing computation, so it is much easier for us to replicate the NLP model in Python
- Python has really powerful library for Machine Learning, Deep Learning, and simulation
- JavaScript (using VSCode)
- Powerful front-end scripting technology that all group members have experience with, and used in ReactJS
- Team has more experience on JavaScript
- Recommended by Client JavaScript
- The previous team had some previous code written in JavaScript
Alternatives:
- TypeScript (using VSCode)
- More stabe than Javascript
- TypeScript is an OOP language
- Team has experience on TypeScript
- Also recommended by client
Libraries:
- NumPy
- Allows quick and efficient generation of a random number from a normal distribution, essential to our project
- The previous team had some previous code using this
- Plotly
- Plotly for Python and Plotly for Javascript both provide the ability to create a multitude of charts and provide sliders, which can be used to help users visualize the simulation results over time
- The previous team had some previous code using this
- Recharts
- With 19k stars on Github, 1.1M npm downloads
- One of the most popular charting library for React
- Recharts follows React’s component principle by enabling users to build charts with its reusable React components.
- Very easy to use with React
- Team has more experience on this
- The previous team had some previous code using this
Alternatives:
- React-chartjs-2
- Recommended by a teammember of previous team
- Its charts it offers are responsive by default.
- Less popular than Recharts
- Team has no experience on this
API for scraping:
- ZenRows
- Easy to use
- Cheaper
- Specifically designed for the task
- client recommanded
Hosting:
- AWS Amplify
- Client Preference
- Compatible with React and the client wants to use this technology and utilize AWS as much as possible
- The client’s previous work is based on this
Front End:
- ReactJS
- Client wants to use this technology to build the user interface, provides speed and flexibility, and some group members have experience with it
- Team has more experience on React
- The client’s previous work is based on this
Alternatives:
- Angular
- Team has no experience on Angular
- Angular is better than React if the application is enterprise-grade and need to incorporate complex functionalities
Back End:
- AWS
- Client Preference
- Used for hosting the back-end calculations and data storage
- The client’s previous work is based on this
Database:
- AWS Amazon S3
- Client Preference
- Used to store a user’s historical go-to-market data used to calculate required inputs to feed into the simulation
- The client’s previous work is based on this
Input Text File:
- Excel (CSV)
- Client Preference
- Team has experience on handling CSV file