A lot of students complain about GDS and the quality of the food. As such, we created a web application which allows individuals to post, view and rate food at GDS so other students can decide whether it is worth going to GDS for a meal.

What it does

This web application allows registered individuals to post what food is at GDS, and allows unregistered individuals to rate food postings (by other users) on this web application through the home page itself. In regards to rating, this application takes into account duplicate postings from various users and people spamming ratings(ie. one user trying to rate one item more than once). Through filtering out these results, the web app then computes an accurate average which is then displayed through a visual output under each post.

For Registration, the application lets users register through our home page. The registration page checks for a valid email and asks the user to confirm passwords. When these criteria are met, the application then sends a verification email which asks them to click on a link to verify their email. If a user does not verify their email address through this link, they will remain unable to post what food is at gds until verification is complete; however, they will remain able to access the functions of a normal user (such as rating and viewing other posts). Once users have logged in, the navigation bar at the top changes links from logging in and registering to signing out and adding food entrees, and in the case that they failed to register, the navigation bar only displays a sign out link.

In the case that users who have registered post false or bad information, users can flag these posts as incorrect, and after a certain number of incorrect flags, the system will automatically delete these postings. Similar to this, there is also administrative accounts which can delete postings that are incorrect through the web application itself.

Lastly, GDS refreshes their entrees during meal times and during certain times in between meals, the entrees are taken away. When this happens, the web application is automatically programmed to clear all current entrees for the international and carving station in order to keep the system and output clean and easy to view for the next meal time.

How we built it

The front-end of the website was designed with HTML, CSS and Bootstrap. Bootstrap allowed us to build the front-end faster and make it automatically adjust for smaller screens (such as phones). JavaScript and JQuery was used to build the dynamic parts of the front-end, such as the star rating system.

To make the website functional, we had to allow it to store food postings, ratings, and users. We used a MySQL database to store this data in three tables. PHP was used to handle writing and reading data from the database. For storing user information, passwords are hashed before being put into the database for additional privacy and security.

PHP was also used to keep track of the state of the user among all the pages. For example, we used it to keep track of whether the user is logged in and whether the user rated an entry already (if they did, then their rating attempt is ignored to prevent spamming). We also used PHP to handle clearing the food postings between meal periods.

Challenges we ran into

We ran into several challenges concerning features on the website. Getting the ratings system to work with both the back-end and the front-end was particularly difficult. Parts of this system that were problematic were taking into account users who might spam ratings, duplicate posts, allowing Admins to delete posts, and the flagging system.

Overall, combining PHP and JavaScript was a challenge as things often get complicated quickly. For example, it was difficult figuring out how to dynamically generate and display the food postings on the homepage based on the data from the database. However, we were able to fix errors as they came up and simplify the code as we went.

Accomplishments that we're proud of

We are proud that we were able to finish all of the features on our web application. Despite the challenges we faced, we worked through them to accomplish our goals. We were also able to work together smoothly. Throughout the hackathon, each of us were almost always able to find something to do to improve the website and we managed to do our work without colliding with each other.

What we learned

We learned more about web design and web development, and we gained a lot of experience in using a web development programming languages and a variety of technologies such as Bootstrap, JQuery, and MySQL. We also learned the process of putting together a full web application that has many parts that interact with each other. We also learned that proper planning, teamwork and communication is a key to success.

What's next for RateGDS

We believe this is an application that could benefit NJIT students who eat at GDS, so we plan to release and advertise the web application to the public as soon as we can.

Share this project: