HivePro
PROJECT 4 README
Overview
_HivePro Space Manager is a full CRUD booking and reservation manager for a client's music rehearsal/recording studio environment. It is designed and engineered as a student portfolio piece in compliance with Project 4 of General Assembly's Software Engineering Immersive, and implements a Rails-on-React stack routed to a POSTGRESQL relational database. _
MVP
_The HivePro Space Manager will allow users to book studio time and the checking out of special equipment during their session. HivePro makes this convenient by producing readouts that display either a) availabiltiy of all rooms for a desired time slot, with parameter filters .for room size and needed equipment or b) all available times for a particular room, on a room detail page. Room details pages will include specifications of room size and non-transportable equipment. Additionally, HivePro allows transportable equipment to be rented during a session from the studio stockpile, subject to availability. The availability of transportable equipment items can be included as a parameter filter to narrow the scope of possible appointments. A registered user will have the ability to update or delete their appointment up until 36 hours prior to the start of their session.
Goals
See MoSCoW diagram (second tab) at: https://app.lucidchart.com/invitations/accept/e61861fc-fb33-41a1-9e64-bc25156d0e69
Libraries and Dependencies
Library | Description |
---|---|
React | Front-end framework |
React Router | Multi-page navigability framework |
React MaterialUI | Ready-made standardized UI tables and buttons |
Rails | Back-end framework |
Moment.js | JS library for improved date-time handling |
Client (Front End)
Wireframes
https://www.figma.com/file/zhlQ7ffDwMQgsFVVcElRbT/P4?node-id=13%3A4
Component Tree
Component Hierarchy
Use this section to define your React components and the data architecture of your app. This should be a reflection of how you expect your directory/file tree to look like.
src
|__ components/
|___Header.jsx
|__ Welcome_Hero.jsx
|__ Mobile_only
|__ Carousel.jsx
|__ Desktop_only
|__ CardFlexbox.jsx
|__ card.jsx
|__ AppointmentFinder
|__Calendar
|__build.js
|__header.jsx
|__index.js
|__ check.jsx
|__ timeFilter.jsx
|__ TimeAgnosticBooker
|__ Schedule
|__table.jsx
|__timeslot.jsx
|__ TimeGnosticBooker
|__ Schedule.jsx
|__ Login
|__ containers
|__MainContainer.jsx
|__ layouts
|__Layout.jsx
|__screens
|__ Main.jsx
|__ SignUp.jsx
|__ LogIn.jsx
|__GreenRoom.jsx
|__Booker.jsx
|__ services/
|__availability.js
Component Breakdown
Use this section to go into further depth regarding your components, including breaking down the components as stateless or stateful, and considering the passing of data between those components.
Component | Type | state | props | Description |
---|---|---|---|---|
MainContainer | functional | y | y | State: rooms hash-array; |
Header | functional | n | n | The header will contain the navigation and logo. |
Navigation | functional | n | n | The navigation will provide a link to each of the pages. |
Gallery | class | y | n | The gallery will render the posts using cards in flexbox. |
Gallery Card | functional | n | y | The cards will render the post info via props. |
Footer | functional | n | n | The footer will show info about me and a link to my portfolio. |
Time Estimates
Task | Priority | Estimated Time | Time Invested | Actual Time |
---|---|---|---|---|
Back-end models/routes/endpoints | H | 2 hr | 4hr | |
Authentication services | M | 2 hr | ||
Seed database | H | 1 hr | ||
Main-container/front routes | H | 2 hr | x | |
Asset gathering + installation | M | 3 hr | 1.5hr | 1.5hr |
Axios services w. dtime handle | H | 2 hr | ||
Availability calc services | H | 2 hr | ||
Time Gnostic Booker (C) | H | 3 hr | ||
Time Agnostic Booker (C) | M | 5 hr | ||
Appointment Finder w/o Calendar | H | 4 hr | ||
Calendar conditional rendering | M | 2 hr | ||
Green Room (UD) | H | 2 hr | ||
Registration and Login screens | M | 3 hr | ||
Card component + styling | M | 3 hr | ||
CardFlex+Welcome - resp. display | M | 2.5 hr | ||
Carousel - resp. display | M | 3 hr | ||
Media breaks + site-wide styles | M | 3 hr | ||
Stress testing + optimizations | M | 4 hr |
| TOTAL | | 48.5 hrs | 3 hrs | TBD |
Server (Back End)
ERD Model
Post-MVP
See MosCoW tab: https://app.lucidchart.com/invitations/accept/e61861fc-fb33-41a1-9e64-bc25156d0e69
Code Issues & Resolutions
Post-deploy issues
Date observed | Issue | Date resolved | notes |
---|---|---|---|
10102020 | links in nav bar buttons not fully exposed |