Giter VIP home page Giter VIP logo

karmakamikaze / hotelpricescout Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 2.0 2.07 MB

This program is designed to notify hotel price managers of competitor price changes and display the discrepancies in a calendar overview. Additionally, a price thermometer is available to suggest price regulation with the average market in mind.

License: GNU General Public License v3.0

C# 76.56% HTML 19.93% CSS 3.52%
hotel-management-system csharp blazor-server price-comparison price-tracking-system

hotelpricescout's Introduction

HPS (Hotel Price Scout)

This program is designed to notify hotel price managers of competitor price changes and display the discrepancies in a calendar overview. Additionally, a price thermometer is available to suggest price regulation with the average market in mind.

The P3-Project CS-21-SW-3-12 team develops the software.

Getting Started

To get a local copy up and running, follow the steps below.

Prerequisites

.NET SDK 5.0

Installation

  1. Clone the repository
git clone https://github.com/KarmaKamikaze/HotelPriceScout.git
  1. Navigate to the root folder of the HotelPriceScout project and run dotnet restore to install all dependencies
cd HotelPriceScout/HotelPriceScout && dotnet restore
  1. Create an .xml file called mail_config.xml and fill in the necessary information in the following way:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <MailConfig>
        <SenderEmailAddress>SOFTWARE_EMAIL</SenderEmailAddress>
        <SenderPassword>SOFTWARE_PASSWORD</SenderPassword>
        <ReceiverEmailAddress>RECEIVER_ADDRESS</ReceiverEmailAddress>
        <ReceiverName>RECEIVER_NAME</ReceiverName>
    </MailConfig>
</configuration>
  1. While in the root folder, start the server by running dotnet run
dotnet run
  1. The site can be visited in a browser at the address localhost:5001
https://localhost:5001

Using the program

When the program is opened for the first time, the Settings page (pictured below) will appear.

Picture of the settings page UI

The Settings page has the following functionality:

  1. Changing the Margin value percent.

    1. This will change the program's sensitivity, i.e., how far the client's prices have to be from the average market price before it is flagged.
  2. Changing the Amount of notifications.

    1. Allows the user to choose how many times a day (0-3) to notify of discrepancies between client prices and average market prices.
  3. Changing the Notification time.

    1. Allows the user to change the time of day to receive the notification(s) from the program (if any).
  4. Start the program with the green button labeled Start program.

    1. Clicking this will trigger a pop-up asking the user to continue to the Dashboard or stay on the Settings page.
  5. After the Start program button is clicked and the program is running

    1. The green Start program button will disappear and be replaced with two smaller buttons labeled Stop program and Update program.
    2. Stop program will stop the scouting activities until the program is restarted.
    3. Update program has to be pressed whenever changes are made to the settings to bring them into effect.
  6. The Dashboard button in the top-right corner is disabled until the Start program button is pressed. After this, the Dashboard button will redirect to the Dashboard page.

After navigating to the Dashboard page, either by clicking Go to dashboard in the pop-up triggered by starting the program or by clicking the Dashboard button in the top-right corner once the program is started, the interface will appear like the image below:

Picture of the dashboard page UI

The Dashboard page has the following functionality:

  1. Two arrow-shaped buttons change the month displayed (Maximum 3 months into the future and 0 into the past).

  2. A dropdown menu to choose the room type to show prices for (1/2/4 adult(s)).

  3. A dropdown menu to choose specific competing hotels; the average market price will be calculated based on the choices here.

  4. An interactive calendar.

    1. The calendar will show basic information about each day (only the client's price and the average market price).
    2. To show more in-depth information, click on a day, and a new container will appear on the right side of the screen, including the prices of all selected competitors.
  5. The Scout settings button in the top right corner.

    1. Will redirect to the Settings page.

License

Distributed under the GNU General Public License v3.0 License. See LICENSE for more information.

Contact

Project Link: https://github.com/KarmaKamikaze/HotelPriceScout

hotelpricescout's People

Contributors

juhe20 avatar karmakamikaze avatar lordbirkebo avatar mwj427 avatar sarmisuper avatar selectionator avatar wassawroki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hotelpricescout's Issues

Model component design

  • Represent events as classes, structures, and attributes.
  • Update the class diagram of the model component.

Re-make perception and navigational patterns to interface

  • (Re-)Design your user interface to support the patterns related to user perception. Describe which patterns you used and the considerations made.
  • (Re-)Design your user interface to include navigation signs. Describe which signs you used and the considerations made.

Create event table

  • List class and event candidates systematically
  • Produce the resulting event table

Function component design

  • Base the design on function types and create a class diagram with operations and specifications of complex operations.
  • Specify complex operations

Interface design

  • Design your user interface to support the users' working memory. Describe how well you did this and the considerations made.
  • Design visuals to direct users’ attention towards relevant information and functions. Describe how you did this and the considerations made in terms of striking the right balance between having the right amount of attention-grabbing elements vs. overloading users with visual elements.

Pseudoscraper class

The scraper must be able to save data to the database, which will simulate and appear like realistic data. It must generate a baseline for Hotel Kompas and use this value for generating random prices for its competitors within a certain range. The random prices should have a certain probability to reach beyond the threshold margin, which will then trigger a notification.

The scraper must update prices for multiple booking sites. Multi-sites, single (competitors own site), which must also be added to the static booking site table in the database.

Apply Hortons and Nielsens design principles

  • Design all the icons (that you are aware of so far) illustrating functionality within your semester project system: that is, icons used to activate the functionalities. Apply Hortons icon checklist to inform your designs and discuss why you use particular items on the checklist while other may be less prioritized.
  • In the physical design you are making now, consider how you will design for all of Nielsens heuristics, e.g. “recognition rather than recall”, “visibility of system status” etc.

List of possible company collaborations

  • Create a list of possible companies for collaborations, including probable issues those businesses may be facing.

  • Create a "first contact" formula, ensuring that all the right information is given to the company and the right questions are answered.

Data gathering

  • Discuss methods for collecting data (to obtain understanding) in the domain of your semester project. Which are you considering to apply? Why? Discuss pros and cons.

  • Consider the data gathering method "contextual inquiry" (from Benyon). In relation to your semester project, list which people you would interview and what aspects of their jobs you would focus upon and observe.

  • Consider the data gathering method "Artefact collection" (from Benyon). In relation to your semester project, consider and list the artefacts that are relevant to collect from - or study in - the domain.

Formulate requirements based on empirical data

Dette bliver i form af moscow, som får uddybende text og forklaring.

  • List at least 10 functional and 10 non-functional requirements for the system of your semester projects (based on the empirical data collected)
  • Prioritize these requirements. Discuss why they are prioritized in that order

Discuss techniques to envision the requirements:

  • Which are you considering to apply? Why? Discuss pros and cons
  • Select the most appropriate envisionment technique at this stage in your project and envision the most highly prioritized requirements.

PACT Analysis

  • People: Physiological differences, Psychological differences, Social differences, Domain Expertise
  • Activities: Purpose of activities to be supported by the system, Temporal aspects, Collaboration, Complexity, Safety criticality, Nature of system content
  • Contexts: Physical, Social, Organizational
  • Technologies that could support users in the domain

Note that, since we may be in an early stage in our projects, this may very well change over time. This is perfectly normal, but at some point we will need to consider PACT aspects anyway. Let's start now!

Investigate CSS frameworks for calendars

We want the framework to be able to craft HTML calendars both for the website and for the email. It is important that it functions for both options as it must appear similar in design.

Prepare for status seminar

  • Collect all content in a document for the other group.
  • Write descriptions for all content (2-3 pages total)
  • Include background information and problem formulation
  • Send the document to the other group
  • Perhaps we should create a schedule for the remainder of the project period?
  • Create PP presentation about all content

Preparation for first meeting with Kompas Hotel

  • Prepare an agenda for the meeting
  • Write a list of things we will want them to know about our project and how our collaboration is going to work
  • Determine what questions we need answered
  • Prepare questions in a structured manner
  • Prepare all we need to be able to start the system definition, class activity, structure activity, and behavioral activity, which will begin immediately after the first meeting
  • Make a note to schedule a new meeting with Kompas at the end of the first meeting

We must receive all the information we need to begin the first phases of the problem domain analysis process.
In addition to these tasks, include any task that comes up, or that I may have forgotten.

Prepare for usability test

Consider the following:

  • Who are the users?
  • What are the tasks they do?
  • Formulate tasks to solve during a usability test
  • What are you going to measure? How?
  • What data are you going to collect during the evaluation? And how?
  • Who will take on what role(s) during the test?

Test plan

The Handbook of Usability Testing contains a chapter on how this plan is formulated. There are also templates for test plans if those are relevant for our test. These are linked in the book.

Pilot test

Consent form

Make a pilot test of your setup to make sure this works as intended.

During the pilot test you should take note of this:

  • Do the tasks make sense for an "outsider", i.e. a person not involved in phrasing these?
  • How long time do the tasks take to complete?
  • Can they be completed within a time frame of 45 min. per participant?
  • Does the introduction script make sense for outsiders?
  • Are you sure you have all necessary questions for the debriefing and demographics?
  • Other matters?

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.