Giter Club home page Giter Club logo

bookanook's People

Contributors

arkokoley avatar divyanshumehta avatar domenoth avatar jdcc avatar kctrlv avatar lao9 avatar ryanttb avatar shlok007 avatar shubhpatel108 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bookanook's Issues

Implement Group Booking System

Libraries are the best place for group studies, Project discussions etc. So it would be great if there would be group booking system and sharing the event with others. The specs are as follows:

  • Allow multiple booking of nooks and creating an event for the same.
  • The people going for the discussion can be mentioned with their usernames.
  • The people mentioned will receive notification about the booking in their reservation dashboard along with the event name and also via e-mail.

This is an enhancement to the booking system.

Date-picker overflowing in Nooks' search filter

On index page of nooks, left pane provides options for filtering the results. When clicking on "future" option from "Choose when" filter, a date picker apears. It is overflowing out of the pane.

screen shot 2016-03-03 at 8 24 20 pm

Checked on Chrome and Safari.

Provide Library's emergency contact info

There can be many complications during the pre-event period. The user should be provided with emergency contact info of the library so the admin could be consulted.

This info can be revealed after taking the admin's consent from the application itself.

Association between Admins and Locations

Associate many to many relationships between admins and locations. An admin will be related to some libraries, most of the time only 1. There can be many admins operating a library (in different shifts).

After this, admin will only have access to locations he is associated to.

Use Google Maps API to show nearby libraries

For searching nearby Libraries we can use Google Maps API to show geographic view of the nearby locations. There can be a Show in map link on clicking which the libraries in that city will be shown in the map. Additionally we can show other information like minimum distance and time to reach it from the user’s current location.The map will look similar to this.
map-location

Prevent user to cancel reservation within x days of the event

The user can unnecessarily block a slot if he/she is unsure of happening of the event. Many users might book the reservation to confirm the nook and cancel before a day or two. The admin should have the power to deny such cancellation if it such cancellation is requested within x days of the event. In other words, allow cancellation until x days before event.

The value of x may or may not vary across the libraries and can be set by the related admin(s).

Add Stars for Libraries

We can add Rating to a particular Library by giving Stars to them.This will also benefit users by knowing which is a better place.

Validations for URL inputs

Creating or editing a reservation request form involves taking in two URL parameters:

  1. Event URL
  2. Video stream link

The input should be validated on the client as well as the server side.

Add User details Page

There should be an User details page in which the User can see details related to his/her account and also edit the corresponding details.

Categorize Nooks into Libraries for better User Experience

Since the Project is developed with a focus on Libraries so the Homepage could show a list of Libraries. On Clicking a Particular Library the respective Nooks could be shown. Since the Library and Nooks uses different Amenity tags so different search filters could provide more searching options.
This is an enhancement to the current UI.

Validate Time of booking

Currently Reservations can be done even if the user selects a time beyond the actual Time range.So we need to validate the Time of booking While saving. Also if possible there should a JS validation in the Time Picker so that only Time within the Time range can be selected.

Prevent confirmation of conflicting reservations

Presently, the admin can confirm 2 reservations on exactly the same or overlapping time. This could be allowed only if the requesters are same or/and after warning the admin about the conflict.

Customize Availability in booking future Nooks

The availability in the nook items is shown with respect to the current Time using Time.now. So for future nooks it also shows Availability according to current time. Instead the actual availability Time can be shown for future nooks.

Nook booking fails to respond once event name is not supplied

When a user tries to book a nook without entering the event name the form is rejected due to JS validation. Then, if a user fills up the event name and submits the form, It doesn't reponsd though a successfull request has been sent to the server and the event is created.

A typical user clicks on "Book!" for several times and many duplicate events are created.

Steps to reproduce:

  1. Go to nooks index page
  2. Click on a nook and a booking form will apear
  3. Submit the form without entering the event name. An error will apear around its text box.
  4. Now Fill the event name and try submiting multiple times . The form will not respond.
  5. Go admin and check the reservations.

Prevent nook to be open when its location is closed

An admin can associate a schedule to a nook. Prevent or warn him/her if the schedule overflows out of the open hours of its location.

When a location is updated, trim the open hours of its nooks to fit in. Warn the admin about this before proceeding.

Add Calendar dashboard to Admin Panel

To depict events on the calendar, we can have a color scheme on the basis of their reservation status:

  • screen shot 2016-03-07 at 1 39 53 pm Pending
  • screen shot 2016-03-07 at 1 40 09 pm Rejected
  • screen shot 2016-03-07 at 1 40 23 pm Confirmed
  • screen shot 2016-03-08 at 1 02 43 am Canceled by User

Update readme.md

It would be great if a readme is provided with steps to set up the project in development environment in Linux/Windows.

Add Travis build Integration

Travis provides continuous integration service for building and testing code before it is merged into the main branch.

Integration of Auto code review services

Services like Codacy and Code Climate can be used to automate code review process. They check the code against certain rules for duplicity, security, complexity, etc. As the project is in the initial stage, this will help maintain certain coding standards and will be beneficial in long run.

Add Reports dashboard to Admin panel

Some metrics and statistics can be very important for the admin. Few of them are:

  • Confirmed/Total Reservations between 2 dates (in form of PDF report)
  • Times for which majority of the reservations are requested for
  • Which locations (libraries) are most used
  • Most busy months for different libraries
  • Busy days in the week

This can help admin gain insights on reservation demands and provide assistant to users on requesting reservations. Sometimes, he/she might also need to submit some of the above reports to the venue facilitator.

Providing reason for rejecting a reservation request

For better user experience, it would be better to let the requester know why his/her application was rejected.

The admin can choose a reason from the given list of common reasons, or he/she can manually enter by choosing the "other" option.

Add a Trending news page

A Trending page is a good way to help users know what are the good locations at a glance or probably where can they find a newly released book they were wanting to read but could not afford to buy or is there some upcoming attractions or just know the Trends in booking.Here are some images to make the picture clearer.
trending

Bugs in Reservations Search functionality

The Search functionality is little buggy.When you search any Reservation it gives correct results.But when you erase the search keyword it displays the results taking the very first letter of the keyword. So all of the reservations may not be displayed in all cases.

Adding (admin) users in seed data

The task rake db:seed doesn't create any Users yet.

The only way to create an admin user it to create a simple user and tweak its is_admin attribute from console.

Some users need to be added in seed.rb.

Directions for creating API

As mentioned in the wiki the aim of the Project is to create a public API for the app. Do we need to create a API only application based on the current app or should we use the present app and do modifications on it for creating its API?
Rails::API gem helps us to create an API only application using Rails and json.When creating an API application we don’t need all the features that Rails provides out of the box such as middlewares.

Different views for users in different timezones

Considering Users will be from different Time zones.The Time selector selects Time in js format.When it gets saved in the database it takes some different value since it is not same as the Ruby date time format. So we need to convert it to Ruby time format before saving it in the database and also suitably display it.Here is a method to do it.

Show unreviewed reservations first to the admin

When an admin logins, the most important things should catch his/her attention. We can add a welcome dashboard which appears first after the login and can show the following:

  • Reservations requests which are not yet reviewed
  • Confirmed reservations recently canceled by the users. So, that the admin knows which slots are free again.
  • "Today's Reservations" or "Upcoming Reservations"

Integrate Rubocop for maintaining coding standards

It is always a good practice to write cleaner codes.Making the code readable to others is one of the good practices of a open source project.We can integrate Rubocop to check coding style and metrics in our project encouraging other contributors to write cleaner and readable codes.

Admin registration

We have a sign-up/register mechanism for the users but not for admins. The only way to register as an admin at present is to tweak is_admin attribute through the console. We will need to revoke all admins' access to Users (as they are library staff) and hence there can be two ways to declare a user as admin:

  1. We can have a super-admin who will have access to all Users and can declare someone an admin.
  2. Have a different link to Admin registration. Anyone can sign up as admin.

The first one seems to be a better option and will prevent frivolous nook entries.

Nook availability check button for admin

To ease the process of checking if a nook is available or not, a button should be provided for each entry of nook. A pre-loaded status is not useful here as another admin could have booked the nook after the dashboard was loaded by the first admin. Another possibility is: the same admin accepts one of the many overlapping requests, but all of them are loaded on the same page with 'available' status.
This will save a lot of time and manual efforts of going through the available slots.

No admin sign_in button

It would be great if there would be a sign_in button for admin. For now we have to mention the admin_users link in the browser. We just have link to the admin_users_session route which is missing now.

Notify User when his/her reservation status is updated by Admin

Currently, the only way a user can know about the updated status of his/her reservations is to visit /reservations/mine page. It would be better to have other mechanisms:

  1. A notification center and an icon at top-right corner showing the count of unread notifications each time a user logs in. All changes in statuses are reported as notifications.
    screen shot 2016-03-07 at 1 39 05 am
  2. Mail the User.

Update URLs when sending AJAX requests

For most of the AJAX request involved, the URL is not being updated. E.g. When a user tries to modify his/her reservation by clicking on "Modify" button.

Make UI responsive for mobile devices

Currently there are many parts of the application that are not responsive like the reservations page
reservations page, admin pages. We need to to make them responsive for smaller screen widths.

Reservation's visibility to other users

A reservation request (before or after confirmation) can be made visible to other users if the requester wishes to do so. There are many public events which would like to attract more people. This could also help other people to plan and request accordingly.

If the requester chooses the reservation to be public, after confirmation, all such events can appear on the public calendar.

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.