Version Control Using Layered Architecture and Design Patterns For GITHUB
Version Control Using Layered Architecture and Design Patterns For GITHUB
ISSN No:-2456-2165
Abstract:- Using distributed version controls, most of the place of trees for version control for better memory
software projects can be easily shared and managed utilization [2].
through online websites which lets developers and also
projects leaders, supporters and students who develop so MVC (Model View Controller)
many codes and who want to resolve bugs and errors to In the existing system where MVC is used they mainly
move forward in their work [1]. Github is one such focused on the characteristics of developers like
example where version control is used as there are many “characteristics”, “initiative” and “leadership” rather than the
projects that are being shared in that website by many application that is Github. Github is the platform where the
software developers. In the existing system MVC (Model projects are uploaded by many software developers and
View Controller) was used but in the proposed system we students. Since Github is transparent many users can access
use Layered Architecture and one design pattern to this and upload their files. If there are any errors or any bugs
resolve the complexity in version control system for they can be easily fixed by others also. In this way it helps
Github [1]. developers. In Github we can see the person who developed
the project, name of the project, name of the project owner,
Keywords:- Version Control, MVC, Github, Layered overview for the project, URL and it also contains the
Architecture, Design Patterns. programming languages being used by the developers and
students which will give us the result which programming
I. INTRODUCTION language has more demand and which programming
language have more scope. As these functionalities increase
Design patterns can be seen as a way to accomplish day by day it becomes complex to use MVC so in this paper
enormous scale reuse by catching effective software we have proposed layered architecture.
development design practice inside a specific setting.
Patterns may not be restricted in what they can depict and can II. SYSTEM ARCHITECTURE
be utilized to typify great design rehearses at both the
determination and usage levels. In this way, design patterns In the existing system Layered architecture is used and
can be applied at a wide range of levels of reflection in the it describes mainly about the system and not about the
software improvement life-cycle, and can concentrate on characteristics of the developer. Layered Architecture focuses
reuse inside architectural design just as point by point design on entire system and it divides the entire application into
and execution. We build up layered quantum-computer meaningful groups that is presentation, business logic and
architecture, which is a deliberate system for handling the data storage in database. In figure 1, these three layers
individual difficulties of building up a quantum computer contain many components. Presentation layer is the one layer
while developing a durable gadget design. In the existing that is visible to be the users, that shows UI designs like the
system MVC (Model View Controller) was used but it is not home page interface and it is also used to show on which
that reliable and complexity increases. As Github is a modern language the interfaces are developed such as HTML, CSS,
user interface it becomes difficult to use MVC. Also, MVC JavaScript. In business layer, business workflows, business
architecture concentrates only on presentation so we use entities, business, components are shown and authentication
Layered Architecture because it focuses on entire system and services can be done for login pages to encrypt and decrypt
it divides the entire application into meaningful groups that is passwords for security purposes [7]. Third layer (Figure 1) is
presentation, business logic and data storage in database and database layer where all data are stored for future purposes.
one design pattern to resolve the complexity in version All login and sign up details will be stored in the database. In
control system for Github and also to reuse some order to provide security in database we use many
functionality. We have proposed the use of linked list in Algorithms [7].
III. PROPOSED DESIGN PATTERN changing the existing system and also, we can retrieve the old
system even after removing some functionalities that are
The purpose of design pattern is to decrease the unnecessary. For example: the user may want to get SMS on
complexity and it can be reused so that resources will be latest projects and not just mail so we can add SMS function
saved. There are totally 23 design patters which are used along with mail function that is already there. Adding SMS
based on the application scenario and for Github we use function to the existing system becomes easy when we use
design pattern that is decorator pattern [5]. decorator pattern [3].
Decorator
Maintains a reference to a Component objects and also
it defines the interface which conforms to Component's Fig 5:- Revision Tree with Local Modification
interface (Figure 2).
V. PROPOSED SYSTEM FOR VERSION CONTROL
IV. REVISION CONTROL FOR
In this paper the proposed system suggests that we used
Versions linked list instead of trees with nodes and branches [7]. As
It helps to add new responsibilities to the component. In linked list has two fields that is data field and address field it
the existing system they used one software tool that is will store the address of the next field which will help to
Revision Control System which will assess the task[2]. It was access the next data details easily. Insertion and deletion of
developed for programming environment and was used to nodes can be done easily by just changing the address filed. It
store source programs, specifications, documentation and is dynamic so anything can be changed during the run time.
also test data. It is also used to manage graphics in Memory is also utilized in an effective manner by just using
computers, VLSI layouts, form letters, book chapters, papers struct and malloc function in the program [6].
etc.
VI. CONCLUSION AND FUTURE WORK
Versions are depicted in the form RCS revision tree.
Tree consists of nodes and branches. In these nodes are As Github is a modern user interface it becomes
version and they are connected to other versions through difficult to use MVC. Also, MVC architecture concentrates
branches [2]. only on presentation so we propose Layered Architecture
because it focuses on entire system and it divides the entire
There are three types, the first type (Figure 3) is young application into meaningful groups that is presentation,
slender which doesn’t have any further branches [2]. business logic and data storage in database and one design
pattern to resolve the complexity in version control system
for Github and also to reuse some functionality. We have also
proposed the use of linked list in place of trees for version
control for better memory utilization. We intend to build up a
suggestion system to pick reasonable designers to cooperate
Fig 3:- Young Slender for specific works and undertakings in GitHub. We could
then re-measure the properties after our proposal system is
The second type (Figure 4) is a revision tree with one applied to a subset of the designer and undertaking quantity
side branch. and examine if there is any particular change in the properties
of the sub-organize. It is important to comprehend GitHub
and other online web based environments that give a basic
and incorporated approach to repositories permitting people
and undertakings of any size to work together in innovative
ways.