Restaurant App project by Aaqib Bhat and Md Wamiq Ali

AttainU
AttainU

Restaurant App

Introduction:

Hello! This is a brief walkthrough for our project ‘Restaurant App’ that we, Aaqib Bhat and Md Wamiq Ali, worked on. We have enrolled for the Full Stack Web Development course at Attainu.

We selected the Restaurant App because it is quite decent and never goes out of date as there can be plenty of ways in which we can satisfy the customers as well as the owners of a particular restaurant. We have implemented various operations such as creating, updating, extracting and deleting the user and admin data in our project. Basically, while going through this process we got an insight into the workings of trending social and ecommerce platforms. It has been immensely fun and educational to work with the schemas and databases such as mongodb and postgresql, middlewares and lots of other things that we will list below. Getting to play around with the servers was quite interesting.

What We Are Trying to Build!

We have created an app for the food service that provides various food items with price, rating, item id and category. The user can see the item listing based on rating or price in descending or ascending order (low to high or high to low). We have also made use of JWT for security of the user data.

Technologies Used for the Project:

  • Javascript
  • Node.js
  • Express.js
  • JSON Web Token
  • Mongoose (mongodb)
  • PostgreSQL

 

  • JavaScript is a programming language commonly used in web development. It was originally developed by Netscape as a means to add dynamic and interactive elements to websites. While JavaScript is influenced by Java, the syntax is more similar to C and is based on ECMAScript, a scripting language developed by Sun Microsystems. JavaScript is a client-side scripting language, which means the source code is processed by the client's web browser rather than on the web server. This means JavaScript functions can run after a web-page has loaded without communicating with the server.
  • Node js is a server side platform built on google chrome’s javascript V8 engine for easily building fast and scalable network applications. Node js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real time application that runs across distributed devices.
  • Express.js, or simply Express, is a web application framework for Nodejs, released as free and open source software under the MIT License. It is designed for building web applications and APIs. It has been called the de facto standard server framework for Nodejs
  • JSON Web Token is an Internet standard for creating data with optional signature and/or optional encryption whose payload holds JSON that asserts some number of claims. JWT claims can typically be used to pass identity of authenticated users between an identity provider and a service provider, or any other type of claims as required by business processes.
  • In Database we have used mongodb which is a nosql database .One of the best things about MongoDB is that there are no restrictions on schema design.It allows us to use  an unstructured query language. Beside that main benefit it has over MySQL is its ability to handle large unstructured data.
  • PostgreSQL is an open source relational database management system developed by a worldwide team of volunteers. PostgreSQL is not controlled by any corporation or other private entity and the source code is available free of charge.

Challenges Came Across:

The challenges we faced during the working of our project were mainly in authentication using JWT and creating tables on PostgreSQL database. It took us 2-3 days to overcome those challenges even while referring to online solutions and youtube videos. No doubt, the instructor had taught us all about authentication but we still faced some problems. We solved the issues eventually by working on different projects (small ones) simultaneously. “If it is working there, why isn’t it working here!?” We joined the pieces together and finally found out where our code had flaws. Sometimes it was the wrong path we provided and sometimes misplacement of the middlewares or sometimes missed a ‘/’.   

Future work which can be done to improve the product: 

Since our project was based on only back-end, we could not implement any front-end features such as html, css and bootstrap. If we could add those 3 features in our project then our app could be more dynamic and responsive to most of the devices. With HTML and CSS we can add more features to our app such as social media authentication like facebook, twitter, google etc. We can also include shareable links which users can use to share with others. Bootstrap could give our app a vibrant feel.

DEMO :