Describe how you intend to develop the API module and provide the ability to run it in Web service mode (Zifan Wei )
Discuss your current thinking about how parameters can be passed to your module and how results are collected. Show an example of a possible interaction. (e.g.- sample HTTP calls with URL and parameters) (Tingzhuang Zhou )
Present and justify implementation language, development and deployment environment (e.g. Linux, Windows) and specific libraries that you plan to use. (Mashira Farid )
Language: Javascript, specifically NodeJS and ExpressJS for backend, React for frontend(?)
Libraries: Puppeteer for scraping
Database: MongoDB coz not very big application → dont need SQL
Frontend: ReactJS, MUI, *Rendering(CSR - CreateReactApp, SSR- NextJS),
Backend: NodeJs, ExpressJS,
Database: MongoDB
Libraries: PuppeteerJS, Morgan(logger), Winston(Logger)
Deployment: AWS *ES2,*ESC, *Lambda, *Heroku, *CI/CD(?)
Implementation Languages:
Our team decided to use full-stack JavaScript for our project. We mainly chose this as:
We would only need to use one programming language throughout our app, allowing us to work efficiently and consistently
Many online resources are available for it, so the few members of our team who were unfamiliar with JavaScript would be able to learn it quickly
JavaScript is the best language for web apps like ours
Backend - NodeJS, ExpressJS
NodeJS: an open-source, cross-platform runtime environment for JavaScript built on Google’s V8 engine
We chose to use NodeJS as it is very simple to use, easy to learn, and provides great performance
Since NodeJS is open-source and cross-platform, everyone in the team could develop the app regardless of the operating system they used (Windows, Mac)
By using NodeJS, we can also use NPM (node package manager), which allows us to install numerous libraries to use in our code to help in development. ExpressJS is an example of one of these libraries which is installed using NPM
ExpressJS: a backend web application framework thats used to design and build web apps quickly and easily
We decided to use ExpressJS as it allows us to create RESTful routes easily. This is particularly useful as we will be developing our own API as part of the project, which we will need to create custom routes for
ExpressJS also supports JSON, which we plan on using for our API to return results
Frontend - ReactJS
ReactJS: an open-source frontend JavaScript library
We chose ReactJS for the frontend because it supports the use of components, which allows us to reuse existing code instead of having to rewrite similar features, which in turn allows for faster development
React also improves performance by only updating components in the DOM whose state has changed, instead of updating every component again, making our app lightweight and flexible
React also has plenty of documentation and online resources, so the members of our team who were unfamiliar with it would be able to pick it up quickly
Development and Deployment Environment:
Windows/Linux/Mac?