rajatmangal / rails

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Readme

Readme

BookHub: The right book will always keep you company GITHUB Link: github.com/njindal239/rails Heroku Link: bookhubapp276.herokuapp.com/ Repository User Mapping: “ Nipun Jindal: njindal239 ” Rajat Mangal: rajatmangal “ Agamdeep Singh: agam2091995 ” Eric Zhuang: xfijk

Please use the following credentials for signing in to the account:

  • Admin Login: email: cmpt276@sfu.ca, password: “password”.

  • Common User Login: njindal@sfu.ca, password: “password”.

  • Also, you can sign up to make your own user account and then sign in through that.

Project Abstract: BookHub is a student portal for selling and buying old academic books pertaining to SFU courses. Users can sign up only if they have a valid account linked to SFU student portal. Once the signup process is completed, students can access their account anytime. The portal shall keep the track of all the books purchased and sold by the student. Also, the student shall be able to view the status of all the books he/she has posted for selling. In addition, BookHub shall maintain a database for all its users, available books, Wish Listed books, all the purchases and users associated with each sale and purchase. This shall be of tremendous importance when it comes to security purposes. Overall, the web application is intended to lessen the burden of keeping track of a wide variety of books on the ‘SFU Old Books’ Facebook page and provide students with a simpler and quicker access to their purposes.

Current Approach to the Problem: Students at SFU do not have an exclusive access to the academic books that they might want to sell or buy (FOR CHEAP!). Most of the students either try to seep in their books through the SFU housing page on Facebook or the ‘SFU Old Books’ page on Facebook. However, this poses several problems to the students. They find it difficult to keep a track of the books that they have posted for selling. The book might get lost in the Facebook pages with a lot of other stuff hovering over it. Every time any student wish to buy a book needs to contact the seller if the book is still available. Also, there is no provision for a student to keep a track of all the books he/she has posted for selling, know the status of those books. Moreover, locating if a certain book is available requires scrolling through tons of books that might not even be related to the student interest.

BookHub makes it easier: Firstly, this project would provide the students with an exclusive platform for selling and buying used SFU books. Each student shall have a database to keep a track of all the books that he/she posted for selling and/or has added to the Wishlist. Also, they will be notified if any of the sought books become available at a certain point in time or a student is interested in buying a book posted by another student. Hence, it would reduce the burden of regular check to the posted books and sought books on a Facebook page that is not even an exclusive page for SFU old books. Another great feature of the portal is that students shall be able to search for the books they require based on the name of the book as well as the course name. This will immensely reduce the burden of scrolling through a complete page and check each and every book.

Target Audience / Customers: BookHub is a website, which would be restricted for serving the purpose of SFU students. Only students, who are linked to SFU with a student account shall be eligible to build an account with BookHub. Nevertheless, based on the initial response to the web application and student demands, this can be expanded to include students from other universities as well. However, BookHub shall not be expanded to non-student accesses since it could pollute the otherwise academic student portal. Hence, BookHub shall be limited only to academic books. Nonetheless, there might be a consideration to provide some remote access to verified old book sellers so that they can post SFU course books that might of interest to several students.

Scope of the Project: BookHub shall incorporate several features to serve the needs of SFU students. There would be a sign up for unverified users to verify their account. Once verified each user would be able to manage his/her profile through sign in. There would be a search column where a user could search for the required books. The user could search a book by specifying various details. For instance, the user could search for a book using the name of the book, ISBN of the book or even the name of the course that requires that particular book. There would be a column where a user could post a book to be sold along with all the relevant details such as pictures, condition of the book, price etc. In case a book is not available in the BookHub, then the student could add the book in the Wish List. If the book becomes available at certain point of time in future, all the students who have added that particular book in the Wish List shall be notified with an email. There might be a consideration to allow some remote access to verified old book sellers (only for SFU course books) so that they can post books on the portal that might serve the requirements of several SFU students.

Modified For Iteration 2: Competitive Analysis: This website is basically a competition to all the websites those who sell used books online. For instance - amazon, sfu used books (Facebook Page). It will be a firm competition to these sites as it will be exclusive to sfu students only, so they will have a cluster of books to buy from and it will have a functionality that will allow them to set the time by which their book will be out to sell. This will increase the availability scope as books will be readily be available as soon as possible. This website will be a zero-profit organization so this will benefit students and it will have a donation column which will allow people to donate books and those books will be available to students who have them in their wish list. As this site is exclusive to sfu, we will try to connect it to sfu administration so that no one has to wait and set up a meeting point. They can just give the book to sfu administration and will have to show their id and the sold-out number that will be provided by the website once the person pays for the book. If we can get permission from SFU, we will try to connect this to the sfu account so that the money can be sent directly deposited to the account. These functionalities will give us a competitive edge on the other sites.

Modified For Iteration 2: User Stories: There are two types of users in the website right now: admin and normal user

  1. Admin: Admin has a specific email and password and as an admin, I will use it, to log in to the website. Admin will have some special rights which can help to maintain the website and can will also help to keep track of all the books that are posted and the users. If you will log in with admin details then you can check the whole database. You also have the ability to delete the users. Also, admin can also edit and delete the books that are posted on the website. In Future, admin will also have rights to watch the transactions performed and can also get the feedback directly from the users.

  2. Normal user: As a normal user, I will, first, sign up to make an account on the website and then will use that username and password to log in to the website. User has option to manage their profile. They can modify the details provided. Also, a user can add books and can also check books that are posted by other users. Users can modify and change the details of the books that is posted by him. But he/she can’t modify or delete the books posted by other users. Only the admin has the right to modify details for every book. In future, user will be able to add his/her profile picture and can also provide the availability if the book he wants to sell.

Workflow Steps:

In this Iteration, we have added a new feature that a user can add the books to the book list. After logging in, user will see a dropdown menu on the top right of the screen. User can click on that and there will be option “Add a new book”. User can just click on the option and can add a new book. Also, he can see all the books that are available using the “List Books” option. User will have full access to modify the details of the books that he/she has added. But he/she can only modify or delete the books that he/she has added. This can be achieved through listing all the books and then clicking on the “edit book” or “delete book” buttons corresponding to the books that have been added by that specific user. Also, user can make changes is his/her profile by clicking on the “Profile” option in the menu.

Modified for Iteration 3: Retrospective: Our team has four members and we tried to use the agile process for our second iteration. We broke up our work into small parts and different roles were given to team members. This time we divided the work into 10 tasks: - “ HTML Pages and Styling ” Bcrypt Encryption “ Create database and link it to users ” Authentication “ Visibility from UI ” Search Bar “ Profile Picture ” Wishlist “ Book’s Image ” Stripe API Some of these tasks were big. So, 2 members collaborated to complete the task but the smaller tasks were completed individually. Nipun Jindal handled the Books Database and also linked it with the Users. He implemented the search bar for iteration 3. Also, he helped a lot in the Authentication. Agamdeep Singh did the whole Bcrypt Encryption and he also helped with the UI Authentication. Eric Zhuang helped a lot with the Authentication and Styling. For iteration 3, Eric Zhaung and Agamdeep implemented the wishlist. Rajat Mangal managed the HTML pages and styling part. Also, he helped with the UI visibility part.for iteration 3, Rajat Mangal added Profile picture and Book’s image. He basically made a display for books with all details and its image . For Iteration 3 , we wanted to implement a payment API, and we choose Stripe API to do so .All the team members put in there efforts for this.

“ For iteration 2, there was a lot of stuff to do. The planning for iteration 2 was done well in time and as a result, the whole work was completed before the expected time. It took us almost 5 days to complete the whole thing. But the constant support of all the team members helped a lot to complete the stuff planned for Iteration 2. This time the collaboration was really good as we learned a lot form our mistakes from iteration 1. There were a bunch of technical errors this time but we were able to figure out most of them and we learned a lot from that too. This time we tried to use GitHub more but we are still learning. We divided the tasks on GitHub but most of the commits were made from the group leader account. But each and every group member did a good job in this Iteration. There is still space for lots of improvements in utilizing the actual benefits of GitHub. Though we were able to assign issues to GitHub, since we were working together most of the time, we still committed only from one account. This is the major thing that we would like to improve from the next iteration onwards. Hence, we will start doing commits from all the accounts from the next iteration. Overall, although the work was split up between team members, every person was involved in almost all phases of design and implementation. It was a complete team effort and the team jelled up well. ” For iteration 3, - Things that went well: All the issues assigned to Team members were successfully completed and this time, Github was used to distribute work and everyone made full use of github’s functionality. - Things that didn’t went well: Although we implemented Stripe API but we were not able to make complete use of its functionality and that we will try to improve. - For future: In future, we are planning to add more security to the site and we are also thinking to use more APIs. For instance, Facebook API.

About


Languages

Language:Ruby 94.0%Language:CSS 5.5%Language:CoffeeScript 0.5%