Last Updated: January 28th, 2021
Guestly is a customer relationship management tool designed for the hospitality industry. Guestly allows hotel staff to manage records of guest stays, track revenue performance, and sort through historical guest and reservation data. It features a highly queryable database of guest information that allows properties to target sets of guests who may be interested in specific email campaigns. Developed to boost the efficacy of marketing efforts, Guestly offers relevance and engagement with its users' target audience.
Guestly was built collaboratively in a team of 5 developers while studying at Epicodus. Guestly makes use of primarily C#, ASP.NET MVC, and MySQL databases.
Expand User Stories and Stretch Goals
-
As a hotel employee, I need to be able to see a list of all guests that have stayed at my hotel.~
-
As a hotel employee, I need to be able to see a record of which rooms a guest has stayed in. (I.E. Sarah Johnson stayed in room 207, room 319, and room 500.)
-
As a hotel employee, I need to be able to see a record of which guests stayed in which room. (I.E. in room 206, Sarah Johnson, Peter Jackson, and Jenny Calendar stayed here.)
-
As a hotel employee, I need to be able to track the revenue earned from an individual guest.
-
As a hotel employee, I need to be able to search/query my list of guests in order to search by revenue earned, most nights stayed, etc.
-
As a hotel employee, I need to be able to see a details page of each individual guest, where information such as contact info and stay history can be viewed.
✅ JS front end - adding interactivity with nav bar, etc.
✅ Add extra search parameters to refine queries made by search bar.
✅ Handle Identity Errors.
✅ Sticky nav bar.
✅ Support links at bottom of page(s) - github link, email link.
✅ Sort database with table links.
✅ Add DateTime data for guest check-in check-out dates.
✅ Show Google map search based on guest data.
✅ As a hotel manager, I would like if revenue tracking was presented in an easy-to-digest and dynamically updated chart and/or graph.
-
As hotel management, I need to be able to manage different hotel properties, each containing their respective guests and rooms.
-
As hotel management, I need to be able to be able to send messages and requests to staff members.
-
As hotel management, I need to be able to be able to send email campaigns to targeted customers.
Name | GitHub Profile |
---|---|
Ben McFarland | Harzulu |
Kaila Sprague McRae | kaila-spraguemcrae |
Max Brockbank | MaxBrockbank |
Zahnen Garner | Zahnen |
Taylor Delph | Taylulz |
- Microsoft Visual Studio Code
- Git/GitHub
- C#
- .NET Core
- ASP.NET MVC
- CSS
- Bootstrap
- EF Core
- MySQL/My SQL Workbench
- CanvasJS
- Identity
- jQuery
- Open your preferred command line program.
- Navigate to the location or directory you'd like the project directory to be created in. (e.g., "cd Desktop" if you'd like to clone the project to your desktop)
- Enter the command "$ git clone https://github.com/Zahnen/Guestly.Solution" in your command line.
- Navigate to the project repository in your browser.
- Click the green "Code" button toward the top right of the page.
- Click "Download ZIP" and extract the files.
- Open the newly-downloaded project in your preferred code editor.
- Download this .NET Core SDK (Software Development Kit). Clicking this link will prompt a .pkg file download from Microsoft.
- Open the .pkg file. This will launch an installer which will walk you through installation steps. Use the default settings the installer suggests.
- Confirm the installation is successful by opening your terminal and running the command
$ dotnet --version
, which should return something like:2.2.105
.
- Download this 64-bit .NET Core SDK (Software Development Kit). Clicking these links will prompt a .exe file download from Microsoft.
- Open the file and follow the steps provided by the installer for your OS.
- Confirm the installation is successful by opening a new Windows PowerShell window and running the command
dotnet --version
. You should see something a response like this:2.2.105
.
- Install dotnet script with the following terminal command:
dotnet tool install -g dotnet-script
.
Once the project has been cloned and you have all the necessary items on your local computer, open the project in the application of your choice (Visual Code Studio was used and is recommended by the application builder)
- Create an
appsettings.json
file in theGuestly
folder and paste in the code snippet below.- Replace
PASSWORD
with the password to your server created for this project - Replace
DATABASE_NAME
with the name of your database
- Replace
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Port=3306;database=[DATABASE_NAME];uid=root;pwd=[PASSWORD];"
}
}
Make sure to have a MySQL server running on your machine on port 3306
- Using your terminal or command line, navigate to the Guestly folder in Guestly.Solution:
/Guestly.Solution/Guestly
. - Next, run the command:
dotnet ef database update
. - You should have your database created for this project.
- Once the project is cloned and the MySQL database is established, use your preferred command line program to navigate to the directory titled "Guestly" within the root directory created when cloning the project.
- To run the console application, enter "dotnet build" in your command line while still within the "Guestly" directory. Follow this command with "dotnet run"
- Your command line will open a server (likely "http://localhost:5000/"). Navigate to this URL in your browser to view the project.
Once you open the project in your code editor navigate to 'Guestly/Contollers/AdministrationContoroller' and comment out [Authorize(Roles = "Admin")]
which is under the namespace.
After this you will be able to do the following steps:
- Navigate to "Register" and fill out the form.
- Click "Log in" and fill out the form.
- In the url navigate to 'localhost:5000/administration/listroles'.
- Click "Create Role" and name the new role "Admin".
- Next to add your account to the "Admin" role, click "Edit" and then click "Add or Remove Users".
- Check the checkbox next to your user email and then click "Update"
- To have to the role update your permission Logout and then Log back into your account. You should now see "Manage User Roles" and "ADMIN" in the navbar.
At this point you should return to the code editor and uncomment or add [Authorize(Roles = "Admin")]
back.
*To have full access to the web application you will need to add the User Role "Admin" to your account.
Date | Error | Handled | Solution |
---|---|---|---|
01.25.2021 | "The entity type 'IdentityUserLogin<string> ' requires a primary key to be defined." |
✅ | add base.OnModelCreating(builder) to GuestlyContext.cs |
01.25.2021 | "error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type" | ✅ | add "f" to float data, ie: 125.00f |
01.26.2021 | login, register and create roles do not show errors | ✅ | add @Html.ValidationSummary(false,"",new { @class = "text-danger"}) to Views and add ModelState.AddModelError(string.Empty, error.Description) to Controllers |
01.26.2021 | when setting nav bar's position to "fixed" in css, nav covers page contents | ✅ | format through bootstrap by adding "sticky-top" to <nav> class` |
01.27.2021 | sorting a table with jQuery is hot garbage | ✅ | add a <span class="data"> to <td> column, modify function to sort by span class instead of td tag |
Copyright (c) 2021 Ben McFarland, Kaila Sprague McRae, Max Brockbank, Zahnen Garner, Taylor Delph