overlook's People
overlook's Issues
1. Dashboard
As a customer:
- I should see a dashboard page that shows me:
- Any room bookings I have made (past or present/upcoming)
- The total amount I have spent on rooms
can delete customer 4 from test data?
build `README.md`
user story: if no rooms of the type I want are available, show apology
install normalize file
investigate data/API and build mental model of structure of available data from different endpoints
choose color scheme https://color.adobe.com/create/color-accessibility
create initial HTML skeleton
fix bug(?) where new bookings add to the current user's points (visible when page reloads) but the rooms are somehow still available to book
make "book room" buttons accessible via tabbing
adjust styling so that error messages don't make the card containers jump down (on landing and on rooms view)
make "soft reset" (clicking on logo) re-fetch and re-display bookings data so that new bookings are shown on the DOM right away without requiring the page to reload
user story: select room for booking and POST the data
format dates on dashboard (YYYY/MM/DD -> something nicer)
create `Customer.js` class and associated tests
- ▪
id
- ▪
name
- 🌟
getFirstName()
-
🌟method moved tocalculateTotalSpent()
BookingsRepo
display user bookings on the DOM
create `Room.js` class and associated tests
- ▪
number
- ▪
roomType
- ▪
bidet
- ▪
bedSize
- ▪
numBeds
- ▪
costPerNight
- 🌟
formatCost
display user reservations on the DOM
Deploy to GH pages!
If you are finished with the functionality and testing of your project, then you can consider deploying your project to the web! This way anyone can play it without cloning down your repo.
GitHub Pages (https://pages.github.com/) is a great way to deploy your project to the web. Don't worry about this until your project is free of bugs and well tested!
If you are done, you can follow this procedure to get your project live on GitHub Pages.
https://github.com/turingschool-examples/webpack-starter-kit/blob/main/gh-pages-procedure.md
user story: select a date and then be shown a list of available rooms
re-read project spec and add cards here as needed
create Sass file structure with partials, etc. (see webpack starter kit site)
think about iterations and write stub tests with user stories as comments
(and also as comments, what data from which API endpoints will be needed to satisfy the user story) -- user-story-test.js
or something like that
add pictures -- maybe one hero image on landing and then one for each of the four room types?
think about and organize data model and class structure (use a spreadsheet? or just my notebook?)
probably make User
class and then have Customer
inherit from that (so that later Manager
can also easily inherit from User
)
create `BookingsRepo.js` class and associated tests
- ▪
bookings
(holds array ofBooking
instances) - 🌟
filterByCustomer(customerId)
-- return another instance of BookingsRepo so that it can be filtered again and/or so that otherBookingsRepo
methods can be run on the result - 🌟
calculateTotalSpent(customerId)
after room is successfully booked, change "book room" button to show a confirmation message (and prevent duplicate booking)
figure out how to make line not break at hyphen (e.g., in date at top when making screen small on rooms view)
2. Customer Interaction
As a customer:
- I should be able to select a date for which I’d like to book a room for myself
- Upon selecting a date, I should be shown a list of room details for only rooms that are available on that date
- I should be able to filter the list of available rooms by their roomType property
- I should be able to select a room for booking
- In the event that no rooms are available for the date/roomType selected, display a message fiercely apologizing to the user and asking them to adjust their room search
Refer to the “Add new booking” section from the endpoints table above!
Note!
If you haven’t already, focus on accessibility at this point. Before moving to iteration 3, please create a branch and push it up to GH so instructors can run Lighthouse and check your dashboard for it’s accessibility audit.
change filtering so that I'm listening to the parent container and display relevant results after hearing any click (i.e., remove explicit button)
4. Manager Interaction
Your app should now support two different types of users. In addition to having a customer, you will now add a manager.
As a manager:
- I should be able to login
- I will see a login page when I first visit the site
- I can log in with the following credentials:
username: manager
password: overlook2021
As a manager, upon logging in:
- I should see a dashboard page that shows me:
- Total Rooms Available for today’s date
- Total revenue for today’s date
- Percentage of rooms occupied for today’s date
As a manager:
- I should be able to search for any user by name and:
- View their name, a list of all of their bookings, and the total amount they’ve spent
- Add a room booking for that user
- Delete any upcoming room bookings for that user (they cannot delete a booking from the past)
Refer to the endpoints table above for deleting a single booking
build scripts to fetch data and start the app
3. Login
When first arriving at the site, a user should be able to log in with a username and password.
As a customer:
- I should be able to login
- I will see a login page when I first visit the site
- I can log in with the following credentials:
username: customer50 (where 50 is the ID of the user)
password: overlook2021
- Upon successfully loggin in, I should see my dashboard.
Refer to the “Get single user” section from the endpoints table above!
add screenshot showing Lighthouse accessibility score
re-read webpack starter kit readme; internalize file structure
clone and set up backend api
create `Booking.js` class and associated tests
- ▪
id
- ▪
guest
(holds instance ofCustomer
) - ▪
date
- ▪
room
(holds instance ofRoom
)
display specific user info on the DOM
update styling so it looks more profesh
build and test function in `scripts.js` to create an array of `Booking` objects from provided API data
user story: if no rooms are available on my date, show apology
build wireframes (for different views and for different screens)
-
see inspo on Dribbble https://dribbble.com/shots/11283865-Tripper-online-booking-app
-
see my starter wireframe https://balsamiq.cloud/ssnyzwu/p9isest/r2278
-
and past project wireframes https://balsamiq.cloud/s76d3gm/pr1wc9d/r2278
create `RoomsRepo.js` class and associated tests
- ▪
allRooms
(holds array ofRoom
instances) - 🌟
filterByAvailability(dateInput)
- 🌟
filterByType(roomType)
add media queries for responsive layout
better way to export from `test-data.js` other than with individual `export` in front of each var?
way to get rid of global variable `allBookings` and `allRooms`?
user story: filter available rooms by room type
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.