munirrani / dx-intern-assessment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Digi-X Engineering Internship Assessment

Section 1

You are tasked to build an online restaurant reservation platform.

  1. Choose a front-end language/framework of your choice
  2. Choose a back-end language/framework of your choice
  3. Choose a database management system of your choice

Explain why you have chosen this stack.

Question 1

  • Choose a front-end language/framework of my choice: React
  • For an online restaurant platform that will have a decent amount of web components like menus, tables, lists that it needed to be altered according to the user input, React's built-in reusable components allows it to do that.
  • React is simple to be understood, as it is using JSX which allows HTML to be mixed with JavaScript code. As someone who is familiar with JavaScript and is still moderately new to front-end development, the barrier for me to use React is lower than other front-end frameworks.
  • React can also be used to create mobile applications with React Native, which means its code can be used not only for web applications, but also for iOS and Android. For an online restaurant reservation platform, it is best the platform is available across all kinds of devices.
  • Since it is developed by Facebook and has a strong developer base, it is easier for me to find existing packages I can use include into the platform like showing a map component. This also helps to save time.

Question 2

  • Choose a back-end language/framework of your choice: Express & Node.js
  • Node js an open-source, cross platform, JavaScript runtime environment. It is made to run JavaScript code on the server side.
  • Express.js is a Node.js web application server framework. It can handle GET, PUT, POST and DELETE requests for the database.
  • Since the front-end stack is using React, using Express & Node.js both together makes the implementation more convenient as it is using JavaScript.
  • Any interaction that causes a data change request from front-end is sent to the Node.js-based Express server.
  • For an online restaurant reservation platform that requires constant database requests for things like table reservation, Node.js and Express can do it efficiently.

Question 3

  • Choose a database management system of my choice: MongoDB
  • MongoDB is a cross platform NoSQL database management system.
  • It stores the data in binary JSON format that allows a fast exchange of data between client and server, which can be used with Node.js.
  • It's a document-oriented database that stores collections and documents instead of table and rows.
  • MongoDB can be used for the storage of large volumes of data, which for an online restaurant reservation platform, makes it highly scalable.

Section 2

  1. What is Github?
    • GitHub is a website that hosts projects that use Git.
    • Git is a tool for tracking changes in any set of files, mainly for software codes (though some people git to store normal files also). It was developed by Linus Torvalds, the person who developed the Linux kernel.
    • GitHub allows developers to open-source their code and let other developers collaborate freely.
    • It has features like bug tracking, feature requests, task management and continuous integration.
    • The usage is free, though users can enjoy GitHub Team and GitHub enterprise for more features through a user monthly subscription.
  2. How does Github help developers?
    • Developers enjoy features such as:
      • A rendered README files that use Markdown.
      • GitHub Actions, which allows for continuous integration and continuous deployment pipelines for testing, releasing and deploying software without relying on third-party websites/platforms.
      • Discussions in repositories.
      • Graphs: User statistics, contributors, commits, code frequency, language chart, members.
      • Able to fork or star their favorite repositories.
      • Email notifications.
    • Now that it has become a Microsoft's subsidiary since 2018, it has open to more opportunities like GitHub Student Pack.
    • GitHub Student Pack allows students who are currently studying in universities enjoy premium-tier platform features at a free price. These platforms include Heroku, Canva, Microsoft Azure and Digital Ocean.
    • Today, it is considered a mainstream platform for developers to open-source their projects. Even companies like Apple, Google and Nvidia use it to host their open-source projects. They are currently 56 million users in this platform and 190 million repositories.

Section 3

I hosted the website using Heroku. The link is here.

About


Languages

Language:PHP 91.1%Language:CSS 8.9%