Giter Site home page Giter Site logo

apartmentfinder's Introduction

Apartment Finder Project

Innovation Insurgents - FSE Spring 2023

Roster
Evan Easton
Ishika Patel
Lakshmishree Chandra
Rithik Kumar Athiganur Senthil
Shreyas Kapoor
Website URL
Wiki Link
Overview Link
User stories Link
GitHub repository Link
Production software Link

Build instructions:

  • To run on localhost, In root directory, run command "npm start" to start the server.
  • In another terminal, "cd client && npm start" to start the client.
  • Launch http://localhost:3000/ in a browser.

Final Project Submission Rubric

Rubric Item Github repo location
Web application - basic form, reporting
Data collection dataCollection folder on the root contains getData.py file that extracts the data from the rapidApi and then sends that data to the rabbitMQ. store_server.py then subscribes to the queue, ingests the data from it, does some processing on the data and stores it into the database.
Data analyzer dataAnalyzer folder on the root contains reviewAnalysis.py file that contains the code for reveiw Analysis using the flair library.
The data gets send from the review.js file on a rabbitMQ message queue. Here, the data is ingested, analysisis done on the review, and then stored into the database.
Unit tests Unit test on Node.js part of the code is here.
Unit test on React code is here
Unit test on Python code is here and here
Data persistence - any data store We are using MongoDB for our data storage requirements.

dbConnect folder on root connects to our cloud database hosted on Atlas for our MERN stack requirements. Additionally we have used pymongo when connection to the database from python scripts in dataCollection and dataAnalyzer
Rest collaboration internal or API endpoint We have exposed our backend API endpoints from the routes folder. Each file contains different POST, GET, DELETE endpoints depending on the usage.

Our front end API endpoints are exposed from the components folder on client/src/components path.
Product environment
Integration tests We have used Mocha framework and chai library to do our integration testing. Files inside the test folder contains integration tests
Using mock objects or any test doubles When testing the login flow, in the login test file, line 10, 23, 34 shows how we have used mock data during the integration testing.
Line 10, 22, 36 in the property test file also shows the same.
Continuous integration We have used github workflows for our Continuous Integration. Here, we are building out project using npm and testing our project as well.
Production monitoring instrumenting
Acceptance tests For acceptance tests, we have not used any framework but have tested all of our endpoints after deploying on heroku. As discussed with the TAs, this was acceptable.
Event collaboration messaging We used RabbitMQ when extracting the data from rapidApi and then storing it into the database.
We again used RabbitMQ when we published the data from Node code to the datAnalyzer code written in Python.
Continuous delivery

Demo

Watch the video

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.