Let's Grow Together - Developers Interaction Portal - Jetir.Org

Page created by Darryl Waters
 
CONTINUE READING
Let's Grow Together - Developers Interaction Portal - Jetir.Org
© 2022 JETIR May 2022, Volume 9, Issue 5                                                       www.jetir.org (ISSN-2349-5162)

      Let’s Grow Together – Developers Interaction
                        Portal
                                1
                                    Amaan Ansari, 2Anas Ahmad, 3Mr. Umesh Pratap Singh
                                        1
                                      Undergraduate, 2Undergraduate, 3Assistant Professor
                                                      1,2,3
                                                            CSE Department,
                                               1,2,3
                                                     SRMCEM, Lucknow, India
                     1
                       amaanansari09.abc@gmail.com, 2anas098ahmad@gmail.com , 3Usgemini@gmail.com

Abstract: This research paper talks about a website specially made for developers. It has all the features in social media site like
sharing, posting, and interacting with other people. What makes our website different from other is it is specifically targeted to
developers. There are only a few other alternative where developers can interact with other fellow developers and work on same
code base at real time.

Keywords – React.js, Node.js, Express.js, MongoDB, online compiler, developers’ portal.
 I. INTRODUCTION

Nowadays, there are multiple platforms where different kinds of developers can ask some help for their problems in code, also
there are multiple websites where developers showcase their project works/glimpse of their articles, but all of these are scattered
here and there on internet. Different kinds of social media platforms are available for people, but if a person is searching or trying
to get knowledge about certain thing related to his field, he/she can be easily distracted as there are many unnecessary contents
available on them. The main problem is the lack of platform, especially for developers where various services should be available
such as asking about error in their codes, sharing some snippets, viewing other’s project work, creating new connections, sharing
experience socially and much more everything at one place. In this project, we will look forward to create such a website where
all the above-mentioned facilities can be easily available and accessible.

 II. OBJECTIVES
   Main objectives of our project are:
    To provide a platform for developers to connect with other people across the globe.
    To build an interactive and collaborative environment for developers helping them to gain more knowledge of theirs as
       well as other domains.
    To helps developers to build their network which will be helpful for their career.
    To allow users to view other’s GitHub profile and their projects.
    To provide Create, Read, Update and Delete (CRUD) functionality to users for their posts and projects.
    To provide a forum posts section, where any user can ask their queries or show their achievements, to which others can
       also respond by liking and commenting on them maintaining the social relationship among users.
    To provide the ease of online compiler directly on the website where the user can directly run their code or test the
       solutions provided by others.

III. LITERATURE REVIEW
    Connecting and building relations with people is one of the most different and amazing feeling in world. But when it comes to
building relations with people through whom you can seek inspiration and learn new things, this has never been easy. But with a
proper platform where only specific domain-oriented people can join and showcase their work experiences, many newcomers can
learn a lot without any distracting content like any other social media platform. Allowing users to access GitHub for their
knowledge seeking through different user’s work articles will lead them to explore more. Also, different users can collab with each
other and can work as a team for a specific project.
    The problem we are trying to solve is the lack of a platform for developers where they can get all the services like asking about
code error, sharing code snippets, working on a code editor online with different developers in real-time, creating new connections,
and sharing their experience on a social platform, everything at one place. Let’s Grow Together provides all the features such as
social media platform, code editor and compiler, social forum and posts on a single platform. When a user registers to this website,

JETIR2205551           Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org                          e419
Let's Grow Together - Developers Interaction Portal - Jetir.Org
© 2022 JETIR May 2022, Volume 9, Issue 5                                                        www.jetir.org (ISSN-2349-5162)
 they experience a clean UI, developers’ section, forum posts and a dashboard to get started on our website. People can use it as a
 platform to increase connections or can also use it to work on the same code base in real-time with multiple developers.
     We describe social network sites as web-based services that allow users to create a public or semi-public profile within a
 constrained system, articulate a list of other users with whom they share a connection, and browse and navigate their list of
 connections as well as those produced by others. The type and terminology of these links may differ from one site to the next. As of
 this writing, there are hundreds of SNSs serving a wide range of interests and practises, each with its own technological
 affordances. Most services help people maintain current social networks, but others connect strangers based on shared hobbies,
 political views, or activities. Some sites cater to a wide range of people, while others draw people together based on shared ethnic,
 sexual, religious, or nationality identities. Sites also differ in how much new information and communication capabilities, such as
 mobile connectivity, blogging, and photo/video sharing, are incorporated.

  IV. PROPOSED METHODOLOGY
     MODULE DESCRIPTION

 This section includes the modules, architecture and various elements that are combined to form the whole system’s framework.
 The proposed framework consists of the whole process of a user from creating his account to making connections with other
 people.

                                                Fig 4.1- Block Diagram of the website

 4.1 LOGIN/REGISTRATION MODULE:
 The primary advantage of Token-based Authentication over Session-based Authentication is that we store the JSON Web Token
 (JWT) on the client side: Local Storage for Browsers, Keychain for IOS, and Shared Preferences for Android... As a result, we
 won't need to create a separate backend project for Native Apps or a separate Authentication module for Native App users.

                                            Fig 4.2 Different types of user categorization
   How JSON Web Token (JWT) authentication works?
JSON Web Token (JWT) is an open standard (RFC 7519) for securely exchanging information as a JSON object between parties.
It is small, readable, and digitally signed by the Identity Provider using a private key/or a public key pair (IdP). As a result, other
parties can verify the token's integrity and legitimacy.
The goal of utilizing JWT is to confirm the data's authenticity, not to hide it. JWT is signed and encoded but not encrypted.
JWT is a token-based stateless authentication method. The server doesn't have to depend on a datastore (database) to save session
data as it is a client-side stateless session.
   Structure of JWT
A period separates the three sections of a JSON Web Token - header.payload.signature. It would be a full stack MERN
Authentication system, utilizing Node.js Express on the back end and React.js on the front end. JWT Authentication is then used to
validate access.

  JETIR2205551           Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org                         e420
Let's Grow Together - Developers Interaction Portal - Jetir.Org
© 2022 JETIR May 2022, Volume 9, Issue 5                                                         www.jetir.org (ISSN-2349-5162)
4.2 USER’S DASHBOARD
This module will provide users the UI to fill their details for profile setup. These will include Professional status of a person
whether he/she is employed or not or looking for a job. If employed, then the details of company where he/she is employed and the
website of that company.
User can add his personal information also with restricted access to others such as their location, date of birth and marital status etc.
User can add his/her skills which will be further added to their profile and will be visible to others creating a good impact.
For their projects and other uploaded open-source stuff, user can mention their GitHub username through which others can view
their work experiences.

                                                       Fig 1. Dashboard Module

4.3 HOMEPAGE
This module consists of three sub modules which are:
     Developers Section
         This section leads us to a page where list of all the developers who have registered on this website are shown, with the
         glimpse of their profile, thereby giving option to connect directly with them and list of their repositories of their GitHub.

                      Fig 2. Developers Module

                                      Posts Section
           This section shows the interface for a user’s post and what other developers have responded to it giving options for like,
           comment and share.

  JETIR2205551           Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org                           e421
Let's Grow Together - Developers Interaction Portal - Jetir.Org
© 2022 JETIR May 2022, Volume 9, Issue 5                                                       www.jetir.org (ISSN-2349-5162)

                                   Fig 3. Posts Module
                                  Profile Section
       The profile section includes all the details of a user including his personal as well as his professional details.

                                       Fig 4. Profile Module
                              Online Compiler
       The Online Compiler module gives the user facility to run their code on the go without visiting any other external site
       and breaking the flow.

                                            Fig 5. Compiler Module

V. TECHNOLOGIES USED
  Let's Grow Together is an application which build on famous MERN (MongoDB, Express.js, React.js, Node.js) stack.
    MongoDB - document database
    Express.js - Node.js web framework
    React.js - a client-side JavaScript framework
    Node.js - the most popular JavaScript web server

JETIR2205551         Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org                         e422
Let's Grow Together - Developers Interaction Portal - Jetir.Org
© 2022 JETIR May 2022, Volume 9, Issue 5                                                        www.jetir.org (ISSN-2349-5162)

The middle (application) tier comprises of Express and Node. The Node.js server platform is a popular and capable JavaScript
server. Express.js is a server-side web framework. MERN is the best way to work with JavaScript and JSON from start to finish.
The MERN design makes it simple to build a three-tier architecture (frontend, backend, and database) using only JavaScript and
JSON.

4.1 MongoDB
MongoDB is a NoSQL database, so rather than storing data in a relational style, it saves it in documents. MongoDB is as a result
incredibly adaptable to real-world business conditions and requirements. It's a document-oriented NoSQL database that can hold a
lot of information. It uses collections and documents instead of tables and rows, as in traditional relational databases. MongoDB's
basic data unit is key-value pairs, which make up documents. In the same way that relational database tables include sets of
documents and functions, collections do as well. MongoDB is a sophisticated no-SQL database that also has SQL capabilities.
This means that we can simply create extensive APIs that can store data as documents in JSON format in multiple collections
(Tables in SQL), and since it's a JSON file, we can do so without knowing difficult SQL queries

4.2 Express.js
Express is a Node.js back-end web application framework released under the MIT License as free and open-source software. It is
designed to be used in the creation of web applications and APIs. It has been dubbed the "de facto" Node.js server framework. It
helps to write our back-end code and implement it in a very structured format. As Express supports many middleware which
makes the code shorter and easier to write, it helps in designing the web applications and API’s which are required in the project
all along. Some of the biggest advantages of Express are asynchronous programming and single threaded architecture.

4.3 React.js
React is a user interface library that was first developed as a Facebook internal library before being open-sourced in 2013. It's well-
known and widely utilized for a variety of purposes. It creates user interfaces for single-page web apps by breaking the user
interface down into modular pieces. The learning curve is rather short because it only takes a basic familiarity of JavaScript and
HTML. We'll even use the "vanilla DOM JavaScript API" in some circumstances (you'll see what I mean later), which means the
programmer won't have to learn anything new to get started. If you've ever built a simple website in HTML, you've probably
wished to gather a lot of HTML elements and then save them as a 'variable' so that you may reuse them later. This is a lifeline for a
developer. Such a feature is possible to implement with React. COMPONENTS are the foundation of the React framework. We
can construct these components once and then utilise them in multiple applications. Code redundancy is reduced by a huge factor.

4.4 Node.js
Node.js is designed using single-thread architecture. It employs event-driven, asynchronous programming callback functions,
which means that while they appear to be registered sequentially in the logic, they are not dependent on the code in which they
appear, instead waiting for the associated event to happen. The call back function code is executed without waiting for a specific
code to complete, allowing the limited resources to be utilized for other tasks such as our web application's business logic.
Node.js makes extensive use of network modules such as HTTP, DNS, NET, UDP, HTTPS, TLS, and others. Developers can
utilize these network modules to create a Web server.

VI. FUTURE WORK
    Currently, this website has almost all the features of social media but for better and interesting interaction, private and group
chat facility can be added. The UI of the website can also be made attractive using GSAP animations or Anime.js. Chatbot
functionality can be provided to users where the FAQ’s can be answered without any waiting. The future scope of our project
would be making it open source and asking other developers for their contribution and new ideas a few of them will be a section for
tech news updates and a section for learning chatbots to answer your tech questions.
VII. CONCLUSION
   The application will be small social network app that includes authentication, profiles, forum posts and online compiler, this
application also includes a GitHub API which allow other developer to view a developer’s GitHub profile and his recent projects.
This application uses an authentication features and private routes, which allows only authenticated users to like and comment on
JETIR2205551           Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org                          e423
Let's Grow Together - Developers Interaction Portal - Jetir.Org
© 2022 JETIR May 2022, Volume 9, Issue 5                                                      www.jetir.org (ISSN-2349-5162)
developer’s recent post, this application allows developer to create, delete and update (CRUD) their posts, Developer can like and
comment on other’s posts like any other social media platform and for the ease of asking doubts and queries, online compiler is
provided. We were able to deploy our website and everything works fine. Posts are being posted, code compiler and editor are
working properly, developers are using the social forum feature for asking doubts, etc. We will keep improving our features.

REFERENCES
[1] Liang, L., Zhu, L., Shang, W., Feng, D., Xiao, Z. (2020). Express supervision system based on NodeJS and MongoDB.
[2] Rafal Golawski, Emily Morehouse, Matt Zabriskie, Nick Uraltsev. Node Package Manager: Packages. [Online]. Available
from: https://www.npmjs.com/
[3] Ali Alhaddad. MERN Stack. [Online]. Available from: https://medium.com/@alialhaddad/
[4] M. R. Solanki, A. Dongaonkar, A Journey of human comfort: web1.0 to web 4.0, International Journal of Research and
Scientific Innovation (IJRSI), Volume III, Issue IX, pp. 75-78, 2018
[5] Javeed, A. (2018). Performance Optimization Techniques for ReactJS. 2019
[6] Sterling, A. (2017). NodeJS and Angular Tools for JSON-LD. 2019 IEEE 13th
[7] Laksono, D. (2017). Testing Spatial Data Deliverance in SQL and NoSQL Database Using NodeJS Full stack Web App. 2018
[8] Patil, M. M., Hanni, A., Tejeshwar, C. H., Patil, P. (2017). A qualitative analysis of the performance of MongoDB vs MySQL
database based on insertion and retrieval operations using a web/android application to explore load balancing Sharding in
MongoDB and its advantages
[9] JavaScript specification. Retrieved from http://www.w3.org/standards/ webdesign/script, November 1, 2016.
[10] “Refs and the DOM –.” React, reactjs.org/docs/refs-and-the-dom.html.
[11] Node.Js. “Documentation.” Node.Js, nodejs.org/en/docs.
[12] Docker. “Docker Docs.” Docker, https://docs.docker.com.

JETIR2205551          Journal of Emerging Technologies and Innovative Research (JETIR) www.jetir.org                       e424
Let's Grow Together - Developers Interaction Portal - Jetir.Org Let's Grow Together - Developers Interaction Portal - Jetir.Org Let's Grow Together - Developers Interaction Portal - Jetir.Org Let's Grow Together - Developers Interaction Portal - Jetir.Org
You can also read