Repository Project Management System
Repository Project Management System
Repository Project Management System
PEACE-WORK-FATHERLAND
P.O. Box 63,
Buea, South West Region
CAMEROON
Tel : (237) 3332 21 34/3332 26 90
Fax: (237) 3332 22 72
By:
Tambua Evaristus
Matriculation Number: FE17A079
Supervisor:
Dr. ELIE FUTE
University of Buea
1
Design and implementation of a repository project
management platform:
Case of the Computer Engineering Department
TAMBUA EVATISTUS
Matricule Number: FE17A079
Academic Year: 2020/2021
i
Certification of Originality
We the undersigned, hereby certify that this dissertation entitled “Design and
implementation of a repository project management platform: Case of the
Computer Engineering Department” presented by TAMBUA EVARISTUS,
Matriculation numberFE17A079 has been carried out by him/her in the
Department of Computer Engineering, Faculty of Engineering and Technology,
University of Buea under the supervision of Dr ELIE FUTE.
This dissertation is authentic and represents the fruits of his/her own research and
efforts.
Date____________________
Student Supervisor
_____________________________ ____________________________
Head of Department
ii
DEDICATION
I dedicate this work to my lovely family who always pray for me to succeed.
iii
ACKNOWLEDGEMENTS
I would like to express my sincere gratitude to several individuals and organizations for
supporting me throughout this project.
First, I wish to express my sincere gratitude to my supervisor, Dr ELIE FUTE, for his
enthusiasm, patience, insightful comments, helpful information, practical advice and unceasing
ideas that have helped me tremendously at all times in my research and writing of this report.
I would like to thank my parents Mr and Mrs TAMBUA ADOLF for their care and
encouragement throughout my whole life mi will like to thank my brothers and sisters PASI,
ANNE, TASH, COLLETTE, and FAITH for their prayers and support.
iv
ABSTRACT
To increase the efficiency of a product, nowadays many institutions use different repository
project management system in order to manage and store their projects information. A
company or institution may run a number of projects at a time and requires input from a
number of individuals or may need to split the work to different individuals, in such situation a
repository project management system is needed to synchronize the different contributions. A
proper repository project management system plays a distinctive part in ensuring reliable
robust and high quality performance in any institution. The reliability and robustness of a
repository project management system has also been set as the structure of the current thesis.
Finally, a repository project management system has been developed, which highly meets the
standards and requirements set by the company.
v
Table of Contents
DEDICATION..........................................................................................................................................iii
ACKNOWLEDGEMENTS.....................................................................................................................iv
ABSTRACT...............................................................................................................................................v
LIST OF TABLES....................................................................................................................................ix
LIST OF FIGURES.....................................................................................................................................x
LIST OF ABBREVIATIONS..................................................................................................................xi
CHAPTER ONE: GENERAL INTRODUCTION..................................................................................1
I. Background and Context of the Study.........................................................................................1
II. Problem statement.....................................................................................................................2
III. Objectives of the Study..............................................................................................................3
3.1 General objective.........................................................................................................................3
3.2 Specific objective..........................................................................................................................3
4. Proposed Methodology.....................................................................................................................3
4.1. Need of SDLC..............................................................................................................................3
Stage 1: Requirement Analysis.........................................................................................................4
Stage 2: Defining Requirements.......................................................................................................5
Stage 3: Designing..............................................................................................................................5
Stage 4: Developing the Product.......................................................................................................5
Stage 5: Testing the Product.............................................................................................................5
Stage 6: Maintenance........................................................................................................................5
1.4. Significance of the Study...........................................................................................................6
1.5. Scope of the Study..........................................................................................................................6
1.6. Delimitation of the study...........................................................................................................6
1.7. Definition of Keywords and Terms.............................................................................................7
2.1 Project Management:............................................................................................................7
2.2 Repository:.............................................................................................................................7
2.3 Git:..........................................................................................................................................7
2.4 Composer:...............................................................................................................................7
2.5 Laravel:...................................................................................................................................7
2.6 MVC:......................................................................................................................................8
2.7 MySQL:..................................................................................................................................8
2.8 Vue JS:....................................................................................................................................8
2.9 HTML:....................................................................................................................................8
vi
2.10. Client-Side Scripting:.............................................................................................................9
CHAPTER 2. LITERATURE REVIEW...............................................................................................10
2.1 Introduction.............................................................................................................................10
2.2. General Concepts on repository project management system..............................................13
2.2.1. Why use a repository project management system?.....................................................14
2.2.2. Features of repository project management system?....................................................14
2.3. Related Works..........................................................................................................................17
i. Jira:...........................................................................................................................................17
ii. Pro Workflow...........................................................................................................................19
2.4. Partial Conclusion........................................................................................................................21
CHAPTER 3: ANALYSISAND DESIGN..............................................................................................22
3.1. Introduction.................................................................................................................................22
3.2. Proposed Methodology................................................................................................................22
3.3. Analysis..........................................................................................................................................24
3.3.1. User requirements..................................................................................................................25
3.3.2. System requirements.............................................................................................................25
3.3.3. Functional requirements......................................................................................................25
3.3.4. Goals of the Project................................................................................................................25
3.4. Design............................................................................................................................................26
3.4.1. Use Case Diagrams................................................................................................................26
3.4.2. Class Diagram........................................................................................................................28
3.4.3 Entity Relation Diagram........................................................................................................29
3.5. Global Architecture of the solution.............................................................................................31
3.6. Description of the resolution process...........................................................................................32
3.7. Partial Conclusion........................................................................................................................32
CHAPTER 4. IMPLEMENTATION / REALIZATION AND PRESENTATION OF RESULTS...34
4.1. Introduction..................................................................................................................................34
4.2. Tools and materials used..............................................................................................................34
4.3 Description of Implementation Process........................................................................................37
4.3.1 MVC Architecture Components............................................................................................37
4.3.2. Requirements.........................................................................................................................38
4.3.3 Coding......................................................................................................................................39
4.3.4 Database Design......................................................................................................................40
4.3.5 Code structure.........................................................................................................................40
4.4 Presentation and interpretation of results...................................................................................43
vii
5.1. Summary of findings....................................................................................................................48
5.2. Contribution to engineering and technology..............................................................................48
5.3. Recommendations.........................................................................................................................48
5.4. Difficulties encountered................................................................................................................48
5.5.Further works................................................................................................................................49
References................................................................................................................................................50
viii
LIST OF TABLES
ix
LIST OF FIGURES
x
LIST OF ABBREVIATIONS
Abbreviations Meaning
Admin Administrator
DB Database
JS JavaScript
MySQL My Sequel
OS Operating System
UI User Interface
xi
xii
CHAPTER ONE: GENERAL INTRODUCTION
A repository project management system is a system design to manage and store project
information using a web-based application by different group of people within an enterprise,
the system allows the company to sub-divide the project into parts in other to monitor the
progress of development.
A repository provides a structured way for programmers to store development files. This can
be helpful for any type of software development, but it is especially important for large
development projects. By committing changes to a repository, developers can quickly revert to
a previous version of a program if a recent update causes bugs or other problems.
Every project usually has a budget and a time frame. Project management keeps everything
moving smoothly, on time, and on budget. That means when the planned time frame is coming
1
to an end, the project manager may keep all the team members working on the project to finish
on schedule.
The objective for collaboration has been: getting thing done faster, cheaper and better by
applying their common knowledge, bringing together a selection of resources and attainments
in a project. Because valid collaboration with teams improves productivity, speeds up result-
making and optimizes of making a right decision, it also helps to intercept precious intellectual
fortune and time. Web based project management system can surprisingly increase
performance, productivity and efficiency within an organization. Since web-based applications
can be accessed through any web browser, no desktop installation or updates are required.
Moreover, developers, who write great code while staying out of the way are able to use it
along the distance, while they stay in geographically different place and collaboration between
team still exists.
So repository project management system will be developed and designed to help a group of
people in an enterprise to manage and store project information using a web-based application.
2
III. Objectives of the Study
4. Proposed Methodology
Project management methodology offers a clear project roadmap that lists all the steps required
to deliver a project successfully. These project methodologies or techniques provide a defined
governance structure, process guidelines, test activities, processes, and deliverables.
In other to carry out this work effectively we are going to use the software development life
cycle.
3
replace and alter or enhance specific software. The life cycle defines a methodology for
improving the quality of software and the overall development process.
The following figure 1.1 is a graphical representation of the various stages of a typical SDLC.
Requirement analysis is the most important and fundamental stage in SDLC. It is performed
by the senior members of the team with inputs from the customer, the sales department,
market surveys and domain experts in the industry. This information is then used to plan the
basic project approach and to conduct product feasibility study in the economical, operational
and technical areas.
Planning for the quality assurance requirements and identification of the risks associated with
the project is also done in the planning stage. The outcome of the technical feasibility study is
4
to define the various technical approaches that can be followed to implement the project
successfully with minimum risks.
Once the requirement analysis is done the next step is to clearly define and document the
product requirements and get them approved from the customer or the market analysts. This is
done through an SRS (Software Requirement Specification) document which consists of all
the product requirements to be designed and developed during the project life cycle.
Stage 3: Designing
A design approach clearly defines all the architectural modules of the product along with its
communication and data flow representation with the external and third party modules. The
internal design of all the modules of the proposed architecture are clearly defined with the
minutest of the details in DDS.
In this stage of SDLC the actual development starts and the product is built. The programming
code is generated as per DDS during this stage. If the design is performed in a detailed and
organized manner, code generation can be accomplished without much stress.
This stage is usually a subset of all the stages as in the modern SDLC models, the testing
activities are mostly involved in all the stages of SDLC. However, this stage refers to the
testing only stage of the product where product defects are reported, tracked, fixed and
retested, until the product reaches the quality standards defined in the SRS.
5
Stage 6: Maintenance
Once the product is tested and ready to be deployed it is released formally in the appropriate
market. Sometimes product deployment happens in stages as per the business strategy of that
organization. The product may first be released in a limited segment and tested in the real
business environment.
6
1.7. Definition of Keywords and Terms
2.2 Repository:
A repository is a central file storage location. It is used by version control
systems to store multiple versions of files. ... This may include multiple source
code files, as well as other resources used by the program. Branches are used to
store new versions of the program.
2.3 Git:
Git is a free and open source distributed version control system designed to
handle everything from small to very large projects with speed and efficiency. Git
is easy to learn and has a tiny footprint with lightning fast performance.
2.4 Composer:
Composer is a tool for dependency management in PHP. It allows you to declare
the libraries your project depends on and it will manage (install/update) them for
you. It helps us installing/updating various requirements/components for our app
such as Laravel framework, Doctrine, lodash etc..
7
2.5 Laravel:
Laravel is a free, open-source PHP web framework, created by Taylor Otwell and
intended for the development of web applications following the model–view–
controller (MVC) architectural pattern and based on Symphony. Some of the
features of Laravel are a modular packaging system with a dedicated dependency
manager, different ways for accessing relational databases, utilities that aid in
application deployment and maintenance.
Laravel attempts to take the pain out of development by easing common tasks
used in the majority of web projects, such as authentication, routing, sessions, and
caching. Laravel aims to make the development process a pleasing one for the
developer without sacrificing application functionality.
2.6 MVC:
Model–view–controller (usually known as MVC) is a software design pattern
commonly used for developing user interfaces that divides the related program
logic into three interconnected elements. This is done to separate internal
representations of information from the ways information is presented to and
accepted from the user.
2.7 MySQL:
MySQL is a relational database management system based on SQL – Structured
Query Language. The application is used for a wide range of purposes, including
data warehousing, e-commerce, and logging applications. The most common use
for mySQL however, is for the purpose of a web database.
8
2.9 HTML:
HTML stands for Hyper Text Markup Language. Not to be mistaken, HTML is
not a programming language but it is a markup language for web pages. HTML
documents are the web pages and the HTML tags and plain text describes the web
pages. A web browser will read the documents by interpreting the tags and then
displays the content of the web pages. In between the HTML opening and closing
tags, the author may create the pages by adding images and objects or designing
text structure by putting headings, paragraphs, et cetera. Even though HTML
language seems like the most simple and basic, it can embed scripts in languages
that can affect the behavior of the web pages such as JavaScript. To enhance the
appearance and layout of the pages, the author can use Cascading Style Sheets
(CSS) on the HTML web pages.
9
CHAPTER 2. LITERATURE REVIEW
2.1 Introduction
Project Management era dates back to 1950-s, that was marked as a date for the beginning of
modern project management. As before 1950´s, projects were managed mostly by Gantt Charts,
and informal techniques and tools. Later on project management tools and techniques were
formalized to more professional and modern solutions. Today’s rapid technological
advancement, of IT industries, and globalization, project management solutions are in demand
throughout the world as a fundamental force to complete projects within a defined scope, time,
and within cost constraints. Today’s most modern project management systems deliver
innovative solutions and its management process has the latest tools, techniques, systems and
schemes in use.
10
For last and maybe the one important thing that project management includes is risk management
of project. In many projects, risks are identified and analyzed in a random. This is fatal, because
unexpected risks arise, which have not been planned for and have to be dealt with on an
emergency basis. Rather than look at each risk independently and randomly, it is much more
effective to identify risks and then group them into categories, and then to identify potential risks
within each category. This way, common influences, factors, potential impacts and potential
preventative for corrective actions, can be discussed and agreed on.
Categorizing risks is a way to systematically identify the risks and provide a foundation for
awareness, understanding and action. Each potential risk needs to be carefully analyzed and the
project team, the supporting teams, the organization involved in managing the project, all need to
be evaluated to determine whether there is the capability to manage that risk successfully, should
it arise.
A key factor that distinguishes project management from just 'management' is that it has this
final deliverable and a finite timespan, unlike management which is an ongoing process. Because
of this a project professional needs a wide range of skills; often technical skills, and certainly
people management skills and good business awareness.
A project is a unique, transient endeavor, undertaken to achieve planned objectives, which could
be defined in terms of outputs, outcomes or benefits. A project is usually deemed to be a success
if it achieves the objectives according to their acceptance criteria, within an agreed timescale and
budget. Time, cost and quality are the building blocks of every project.
11
According to H. Kerzner Project management is the planning, organizing, directing and
controlling of company resources for a relatively short-term objective that has been established
to complete specific goals and objectives. Furthermore, project management utilizes the systems
approach to management by having functional personnel (the vertical hierarchy) assigned to a
specific project (the horizontal hierarchy).
Many organizations also have their own definition of what constitutes a project. Whichever
definition you prefer does not really matter; the important thing is to be able to identify work that
constitutes a project so that it can be properly managed.
12
• They have a definite start and endpoint
• Once the endpoint is reached the project is over
• They are attempting to achieve something new
Projects can vary in size and small projects can be planned and managed by the same person
whereas larger projects may employ thousands of people working on many sites and require a
dedicated group in order to manage and coordinate the activities.
The prime function of a repository project management system is to assist managers with their
everyday project management responsibilities.
Risk management
13
2.2.1. Why use a repository project management system?
People from every industry today relies on online solutions for client satisfaction and better
results. There are multiple reason to use of a project management tool, but keeping it precise, the
three main reasons are:
Visibility: View progress across all your projects, identify projects at risk, monitor timelines,
and share project status in real-time.
Accountability: Timely project updates to people at all levels, summary view of all projects,
overdue tasks, avoid missing deadlines, and no more confusion regarding individual roles and
responsibilities.
Organization: Keep workflows tools in one place, central location for all project details &
updates, store project file in a secured location, and project get the templates to stay consistent.
i. Risk management
A risk is any uncertain condition that might affect your project. There is particularly nor
project without risks. From the start to the stages of development, there is a chance
unforeseen of situations to emerge and leave big impacts on the project. Therefore,
project managers use the process of risk management to minimize any potential problems
that may impact a project’s timeline. Your system should be able to identify and manage
risks in the project plan and calculate all risks in advance.
14
tool that offers resource management. For every project, resource management is an
integral part that will make aware of the whole project cost and other related things.
Therefore, it becomes really convenient to have a resource management function on a
project management tool to calculate expenditures and distribute well the tasks along.
v. Third-party integrations
With teams depending on a project management system every day, it makes sense that
your tool should be able to synchronize data with other apps. An integrated suite offers
functionalities that are relevant to various businesses for various purposes. This is one
easy and direct way to take your project management to another level. Project managers
should look for a project management system with integration support for popular apps
15
like Dropbox, Google Drive, OneDrive, and Box. All of the top picks like Proof Hub
include integrations with Google Drive, Dropbox, FreshBooks, and many more.
16
should let you easily assign tasks across all team members. You can assign roles to each
person in the team and provide them access to the relevant task information.
i. Jira:
Jira Software is part of a family of products designed to help teams of all types manage
work. Originally, Jira was designed as a bug and issue tracker. But today, Jira has evolved
into a powerful work management tool for all kinds of use cases, from requirements and
test case management to agile software development.
Jira Software provides planning and roadmap tools so teams can manage stakeholders,
budgets, and feature requirements from day one. Jira integrates with a variety of CI/CD
tools to facilitate transparency throughout the software development life cycle. When it’s
ready to deploy, live production code status information is surfaced in the Jira issue.
Integrated feature flagging tools allow teams to roll out new features gradually and safely.
In Jira Software, teams can build a roadmap that’s associated with each project. The
roadmap enables teams to sketch out the longer-term view of their work as well as track
and share progress for their roadmap. Add more detail to your roadmaps, surfacing
dependencies and forecasts for when you might complete your work. Create a view
highlighting ‘live’ roadmaps from multiple teams by embedding the Jira Software roadmap
into Confluence
17
Create tasks for yourself and members of your team to work on, complete with its details, due
dates, and reminders. Utilize subtasks to breakdown larger items of work. Allow others to watch
the task to track its progress and be notified when it’s completed. Create sub-tasks within the
parent task to break down the unit of work into digestible pieces for various members of the
team. View all tasks on the board to easily visualize each’s status.
18
Tool, where you could update the projects by making[ CITATION pro19 \l 1033 ] them
public or private, attaching files to them, sending messages, responding, and more. Gantt
Style Timeline allows a complete overview of all the projects and tasks in the system and
the Timesheet uses the drag-and-drop mechanic to easily set dates and time.
ProWorkflow has a mobile version that works for iOS, Android, and Blackberry devices
where users can have access to the system’s standard features like task management and
time tracking. It also has a messaging tool with download capability. The system highly
supports integration. It works well with other productivity apps such as Xero and
Quickbooks. More apps can be added through ProWorkflow’s dedicated App Store. Add-
ons like Chrome time tracker and profitability reports are available as well. On top of
that, developers can
also integrate their very own applications with the platform since it features an open API.
19
2.4. Partial Conclusion
This literature review gave an overview on the background of a repository project management
system. it started off with an introduction then the general concepts of a repository
management system, their features and their importance have also been presented, then we
continued with some works related to our study. In the following section the design section for
the repository project management system will be presented.
20
CHAPTER 3: ANALYSISAND DESIGN
3.1. Introduction
In this chapter we are going to elaborate on the detailed procedure used in the development of
this repository management platform.it also details the system design that emerge from the
system analysis. This analysis cover development requirement, system and software design,
testing, user and system requirements, functional and non-functional requirements. We will also
cover the global design of the system.
The Waterfall Model was the first Process Model to be introduced. It is also referred to as
a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
model, each phase must be completed before the next phase can begin and there is no
overlapping in the phases. The Waterfall model is the earliest SDLC approach that was used for
software development.
The waterfall Model illustrates the software development process in a linear sequential flow.
This means that any phase in the development process begins only if the previous phase is
complete. In this waterfall model, the phases do not overlap.
Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure
success of the project. In "The Waterfall" approach, the whole process of software development
is divided into separate phases. In this Waterfall model, typically, the outcome of one phase acts
as the input for the next phase sequentially.
21
Figure 5:
Waterfall Model SDLC
The sequential phases in Waterfall model are −
ii. System Design − The requirement specifications from first phase are studied in this
phase and the system design is prepared. This system design helps in specifying hardware
and system requirements and helps in defining the overall system architecture.
iii. Implementation − With inputs from the system design, the system is first developed in
small programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred to as Unit Testing.
22
iv. Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
v. Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.
vi. Maintenance − There are some issues which come up in the client environment. To fix
those issues, patches are released. Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the customer environment.
All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases. The next phase is started only after the
defined set of goals are achieved for previous phase and it is signed off, so the name "Waterfall
Model". In this model, phases do not overlap.
Some of the major advantages of the Waterfall Model are as follows −
Simple and easy to understand and use
Easy to manage due to the rigidity of the model. Each phase has specific deliverable and
a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well documented.
3.3. Analysis
This is the identification of the requirements of the system and the limitation within which the
system will operate, develop, or can evolve. this stage ensures that the software meets all the
user’s expectations. It ensures the delivery of quality software to the user at the end of the
23
production process. On completion of the software specification, a requirement document will be
produced and validated.
3.3.4. Goals of the Project
The Repository Project Management System has the following goals:
1. Provide users with an interface through which they may log into the system.
24
2. Provide project managers with an interface through which they may initialize a new
project.
3. Provide project managers with an interface through which they may dynamically add
or remove processes from a particular project.
4. Provide project managers with a system alerting them of inconsistencies in process
dependencies among the processes chosen for a project.
5. Provide project managers as well as team members with an interface through which
they may view all of the processes for a project in the form of a dependency graph.
6. Provide project managers as well as team members with an interface through which
they may update the inputs, outputs, and status of a process.
7. Obtain information from and make changes to the database quickly and accurately. 8.
Provide an intuitive and convenient GUI to maximize ease of use.
3.4. Design
Actor: which is the user, which can be a single person or a group of people, interacting
with a process.
System: which is the process that's required to reach the final outcome.
25
Goal: which is the successful user outcome.
26
3.4.2. Class Diagram
A class diagram in the Unified Modeling Language (UML) is a type of static structure
diagram that describes the structure of a system by showing the system's classes, their
attributes, operations (or methods), and the relationships among objects.
The class diagram is the main building block of object-oriented modeling. It is used for
general conceptual modeling of the structure of the application, and for detailed modeling,
translating the models into programming code. Class diagrams can also be used for data
modeling
27
3.4.3 Entity Relation Diagram
ER Diagram stands for Entity Relationship Diagram, it’s a diagram that displays the
relationship of entity sets stored in a database. In other words, ER diagrams help to explain
the logical structure of databases. ER diagrams are created based on three basic concepts:
entities, attributes and relationships. At first look, an ER diagram looks very similar to the
flowchart. However, ER Diagram includes many specialized symbols, and its meanings
make this model unique. The purpose of ER Diagram is to represent the entity framework
infrastructure.
28
3.4.4 Mock-up designs
29
Figure 10: Pencil design of Students dashboard
The global architecture of solution proposed for this system is the client server architecture.
30
Figure 3.6: Client-Server Architecture
31
CHAPTER 4. IMPLEMENTATION / REALIZATION AND
PRESENTATION OF RESULTS
4.1. Introduction
This section will show the various tools and methods used in the system implementation as
well as the various forms of testing done. The result of the system after implementation and
testing are also explained in details in this section along with some discussions on its
functionality.
CSS (Cascading Style sheets) Cascading Style Sheets is a style sheet language used for
describing the presentation of a document written in a markup language such as HTML.
CSS is a cornerstone technology of the World Wide Web, alongside HTML and
JavaScript. It is the language for describing the presentation of Web pages, including
colors, layout, and fonts. It allows one to adapt the presentation to different types of
devices, such as large screens, small screens, or printers.
32
Java Script: It is a text-based programming language used both on the client-side and
server-side that allows you to make web pages interactive. Where HTML and CSS are
languages that give structure and style to web pages, JavaScript gives web pages’
interactive elements that engage a user.
JQuery: [ CITATION the11 \l 1033 ] It is a fast, small, and feature-rich JavaScript library. It
makes things like HTML document traversal and manipulation, event handling,
animation, and Ajax much simpler with an easy-to-use API that works across a multitude
of browsers.
PHP: [ CITATION php14 \l 1033 ] It is a server side scripting language that is embedded in
HTML. It is used to manage dynamic content, databases, session tracking, even build
entire e-commerce sites. It is integrated with a number of popular databases, including
MySQL, PostgreSQL, Oracle, Sybase, Informix, and Microsoft SQL Server.
Laravel: It is a free, open-source PHP web framework, created by Taylor Otwell and
intended for the development of web applications following the model–view–controller
architectural pattern and based on Symphony. It attempts to take the pain out of
development by easing common tasks used in the majority of web projects, such as
authentication, routing, sessions, and caching. Laravel aims to make the development
33
process a pleasing one for the developer without sacrificing application functionality
[ CITATION int \l 1033 ].
SQL: SQL stands for Structured Query Language. A query language is a kind of
programming language that's designed to facilitate retrieving specific information from
databases, and that's exactly what SQL does. To put it simply, SQL is the language of
databases.[ CITATION sql \l 1033 ]
PHP Storm: PhpStorm is a commercial, cross-platform IDE for PHP, built by the Czech
Republic-based company JetBrains. PhpStorm provides an editor for PHP, HTML and
JavaScript with on-the-fly code analysis, error prevention and automated refactoring for
PHP and JavaScript code.
34
4.3 Description of Implementation Process
The application was implemented in laravel using the Model-View-Controller Architecture. The
Model-View-Controller (MVC) is an architectural pattern that separates an application into three
main logical components: the model, the view, and the controller. Each of these components are
built to handle specific development aspects of the application. MVC is one of the most
frequently used industry-standard web development framework to create scalable and extensible
projects.
I. Model
The Model component corresponds to all the data-related logic that the user works with. This can
represent either the data that is being transferred between the View and Controller components or
any other business logic-related data. For example, a Customer object will retrieve the customer
information from the database, manipulate it and update it data back to the database or use it to
render data.
II. View
The View component is used for all the UI logic of the application. For example, the Customer
view will include all the UI components such as text boxes, dropdowns, etc. that the final user
interacts with.
III. Controller
35
Controllers act as an interface between Model and View components to process all the business
logic and incoming requests, manipulate data using the Model component and interact with the
Views to render the final output. For example, the Customer controller will handle all the
interactions and inputs from the Customer View and update the database using the Customer
Model. The same controller will be used to view the Customer data.
4.3.2. Requirements
RAM: 4GB
ROM: 500GB
OS: Windows 10
36
Processor speed: 2GHz
Dependencies: MySQL
4.3.3 Coding
In other to get a running project composer was installed using the command line interface.
Composer global require “laravel/installer=~1.1”
To initiate the repository project management system, the command below was used
Composer create-project laravel/laravel Repository-Project-Management-System
Running the above command creates a folder which when opened in vs code looks like the figure below
37
Figure 12: RPMS home directory in VS code
4.3.4 Database Design
After the application was installed the next thing that had to be done was to setup the database. A
database was created in Php My Admin. The database tables were created using laravel migrations
Using the php artisan migrate command. The figure below shows the list of database tables created using
migration.
I. Controllers
The controllers were created using the php artisan make:controller command in laravel
using the CLI. Figure 14 shows the list of all the controllers used the application.
38
Figure 14 List of controllers used in the RPMS
II. Models
The models were created using the php artisan make:model command in laravel using the
CLI. Figure 15 shows the list of all the models used the application.
39
Figure 15: List of models used in the RPMS
III. Views
The views are store inside the Resource folder . The view are writing plain php using
laravel blade. Figure 15 shows the directories where the views are stored.
4.3.6 Deployment
40
The project was hosted locally one the xamp server. The server was started using the php
artisan serve command
Welcome page: This page comes up then the application if initiated for the first time.
It gives the user the option to either login or create an account.
41
Registration form: This form allows the user to be able to create a student account using
his or her name email and password.
Login Page: This page allows the user to login into his or her account using the email
and password.
42
Student Dashboard:
Instructor Dashboard:
43
Figure 20: Instructor Dashboard
Project view
44
Figure 23: Upload project form
Not all the objectives of the project have been achieved. Nevertheless, the most important part of
the project which was to enable lecturers to be able to assign projects to students and be able to
monitor their progress, was completed successfully. The result of this study will be appreciated
when the project is fully completed. We are at the maintenance phase of the software life cycle.
The Objective of the study were achieved and the solution was successfully implemented. This
solution can be deployed on any web server and can run on any operating system.
45
5.2. Contribution to engineering and technology
With the implementation of the repository project management system, the management of
projects files, papers will be much easier. It also makes working in teams super easier since it
allows users to work remotely and upload their files to the system which can be accessed by any
other user working on that file.
5.3. Recommendations
After analysis and implementation of this project, the following recommendations are brought
forth
The platform should be displayed and hosted on a secured server.
Every institution that deals with following up worker progress should get a repository
project management system to keep track of their activities.
The constant seizure of electricity in the area where I carried out the project greatly affected
my productivity.
The time frame given to complete the project was small causing me to rush over some parts
of the project.
The slow network connection in Buea made it difficult for me to do proper research.
I faced a lot of challenge in the area of handling version control of the files uploaded in the
application, which caused me to push its implementation to a later version of the
application.
46
5.5. Further works
Even with the satisfaction of the current work, more needs to be done.
Better user experience.
Implement group chatting between team members of a particular project.
Include a scheduling calendar to the application.
References
Association for project mangement. (2003, march 5). Retrieved from apm.ork.uk:
https://www.apm.org.uk/resources/what-is-project-management/
47
faqpm project management. (2014, may 14). Retrieved from Free project management:
http://www.free-management-ebooks.com/faqpm/principles-02.htm#:~:text=H.,complete
%20specific%20goals%20and%20objectives.
pros and cons of vui js. (2017, december wednesday). Retrieved from Altexsoft:
https://www.altexsoft.com/blog/engineering/pros-and-cons-of-vue-js/
48
Sdlc. (2014). Retrieved from Tuturialspoint:
https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm#:~:text=The%20Waterfall
%20model%20is%20the,the%20previous%20phase%20is%20complete.
49