You are on page 1of 62

UNIVERSTITY OF BUEA REPUBLIC OF CAMEROON

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

FACULTY OF ENGINEERING AND TECHNOLOGY

DEPARTMENT OF COMPUTER ENGINEERING

Design and implementation of a repository project


management platform:
Case of the Computer Engineering Department
A dissertation submitted to the Department of Computer Engineering, Faculty
of Engineering and Technology, University of Buea, in Partial Fulfilment of the
Requirements for the Award of Bachelor of Engineering (B.Eng.) Degree in
Computer Engineering.

By:
Tambua Evaristus
Matriculation Number: FE17A079

Option: Software Engineering

Supervisor:
Dr. ELIE FUTE
University of Buea

Academic Year: 2020/2021

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

Dissertation submitted in partial fulfilment of the Requirements for the award


of
Bachelor of Engineering (B.Eng.) Degree in Computer Engineering.

Department of Computer Engineering


Faculty of Engineering and Technology
University of Buea

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.

Upon successful completion of this project, several organizations such as Academic


institutions such as schools, colleges and universities, Professional institutions such as software
firms and medical institutions will be able to deploy this on their respective platforms to ease
the day by day tracking of digital records. The current implementation is focus on the
Computer Department of the Faculty of Engineering and technology, University of Buea as
case study. This will permit students to submit assignments, projects and reports to their
lecturers and the lecturer can view their work and give feedbacks directly to each student.

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

Figure 1: Software Development life circle................................................................................................4


Figure 2: Project Characteristics...............................................................................................................12
Figure 3: Sample of Jira software project page.........................................................................................18
Figure 4: Pro Workflow Project screen.....................................................................................................19
Figure 5: Waterfall Model SDLC..............................................................................................................22
Figure 6: Repository Project Management System Use Case Diagram.....................................................26
Figure 7: Repository project management system Class Diagram.............................................................27
Figure 8: Repository project management system ER Diagram...............................................................28
Figure 9: Pencil design of staff dashboard.................................................................................................29
Figure 10: Pencil design of Students dashboard........................................................................................30
Figure 11: MVC Architecture....................................................................................................................36
Figure 12: RPMS home directory in VS code...........................................................................................37
Figure 13 List of migration tables.............................................................................................................38
Figure 14 List of controllers used in the RPMS........................................................................................39
Figure 15: List of models used in the RPMS.............................................................................................39
Figure 16: List of views used in the RPMS...............................................................................................40
Figure 17: Welcome page..........................................................................................................................41
Figure 18: Registration page......................................................................................................................42
Figure 19: Students dashboard...................................................................................................................43
Figure 20: Instructor Dashboard................................................................................................................43
Figure 21: Project list................................................................................................................................44
Figure 22: Add new project form..............................................................................................................44
Figure 23: Upload project form.................................................................................................................45

x
LIST OF ABBREVIATIONS

Abbreviations Meaning
Admin Administrator

CLI Command Line Interface

CSS Cascading Style Sheets

DB Database

DOM Document Object Model

FET Faculty of Engineering and Technology

HTML Hyper Text Mark-up Language

IDE Integrated Development Environment

JS JavaScript

MySQL My Sequel

OS Operating System

RAM Random Access Memory

ROM Read Only Memory

SDLC Software development life cycle

SQL Structured Query Language

UML Unified Modeling Language

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.

I. Background and Context of the Study


A repository is a central file storage location. It is used by version control systems to store
multiple versions of files. While a repository can be configured on a local machine for a single
user, it is [ CITATION pro20 \l 1033 ] often stored on a server, which can be accessed by multiple
users.

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.

Project management involves the planning and organization of a company's resources to


move a specific task, event, or duty towards completion. It can involve a one-time project or an
ongoing activity, and resources managed include personnel, finances, technology, and
intellectual property. From start to finish, every project needs a plan that outlines how things
will get off the ground, how they will be built, and how they will finish. For example, in
architecture, the plan starts with an idea, progresses to drawings, and moves on to blueprint
drafting, with thousands of little pieces coming together between each step. The architect is
just one person providing one piece of the puzzle. The project manager puts it all together.

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.

II. Problem statement


Final Year Project management has been in a more traditional way for all these years. It is
done manually where all the registration, allocation and markings are in hardcopies and forms
and then managed by FYP coordinators. While the coordinators are doing a great job, this
management system has several disadvantages;
i. It is time-consuming and requires more man power in running the manual system, hence it is
denoted as less efficient
ii. In communicating with all the participants, the committee also having problems and difficulties
because there is no specific medium of interaction and this will cause delays.
iii. There are also problems aroused in archiving and storage. The previous data are hard to search
and tend to be eliminated after some period of time. The manual system also uses much more
storage for all the hardcopies.

2
III. Objectives of the Study

3.1 General objective


The objective of this project is to design and implement a repository management platform to
manage reports and electronic documents in specific organizations and institutions. The focus
here is storing and tracking electronic documents and files persisted in computer based
achieving systems. Users of the platform will be able to create a project, divide the projects
into sub-task, and upload their files into their respective projects

3.2 Specific objective


The specific objectives are:

i. To develop an online system that is systematic and comfortable


ii. To design the architecture of the system and its functionalities
iii. To setup the platform and server environment
iv. To test the reliability of the system

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.

4.1. Need of SDLC


The software development life cycle is a process followed for a software project, within a
software organization. It consists of a detailed plan describing how to develop, maintain,

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.

Figure 1: Software Development life circle

Stage 1: Requirement Analysis

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.

Stage 2: Defining Requirements

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.

Stage 4: Developing the Product

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.

Stage 5: Testing the Product

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.

1.4. Significance of the Study


The outcome of this will rebound to benefit any enterprise that works on important
projects. This system can serve as a blueprint of future development of repository project
management system for better management of project and storage of projects information.
The knowledge of the percentage of projects realized by an enterprise will be visible.

1.5. Scope of the Study


The scope of application of this platform is wide and will bring about significant improvement
in the management of projects in different istitutions both academic and professional.

1.6. Delimitation of the study


This platform is very wide. For the purpose of this study the platform was built with the
following boundaries and assumptions in mind.

 The Admin and users are part of the same institution.


 Admin refers to lecturers and administrative staff with sufficient authority to act
perform supervision role.

6
1.7. Definition of Keywords and Terms

2.1 Project Management:


Project management is the process of leading the work of a team to achieve goals
and meet success criteria at a specified time. The primary challenge of project
management is to achieve all of the project goals within the given constraints.

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.

2.8 Vue JS:


Vue js is a progressive framework for JavaScript used to build web interfaces and
one-page applications. Not just for web interfaces, Vue. js is also used both for
desktop and mobile app development with Electron framework.

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.

2.10. Client-Side Scripting:


Client-side scripting is referring to the web programming that takes place on the
client side. A user will use the web browser to access the information thus the
web browser will execute the script and send the information back to the user’s
interface. Client-side scripting is crucial to be able to dynamically react with
different and changing content, depending on the input or other variables
requested by user. Once a user requests a file, the web server will be in charge to
find the file and then send it to the user’s web browser to execute the file and then
display the output. Client-side scripts can simply be said that the medium of
communication on the front end between the web server with the user.

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.

But what does project management by itself mean?


According to Barry Boehm, A Project management is like a series of actions added to a
process of getting things done on a project by working with project team members to reach
project schedule, cost and technical performance objectives. Definitely we could say that project
management is a carefully planned and organized effort to accomplish a specific one-time
objective. It doesn’t matter if it is for constructing a building or implementing a major new
computer system. What especially does it include then? To define and confirm the project goals
and objectives we need first to develop a project plan, after that we could easily identify tasks
and achieve goals. Later on, quantifying the resources is needed, determining budgets and
timelines for completion. We can’t forget to mention, that project management also includes
managing the implementation of the project plan, along with operating regular controls to ensure
that there is accurate and objective information relative to the plan, and the mechanisms to
implement recovery actions where necessary. Projects usually follow major stages, including
feasibility, definition, project planning, implementation, evaluation and maintenance.

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.

According to Dr Martin Barnes Project management is the application of processes,


methods, skills, knowledge and experience to achieve specific project objectives according to the
project acceptance criteria within agreed parameters. [ CITATION Ass03 \l 1033 ]Project
management has final deliverables that are constrained to a finite timescale and budget.

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.

Figure 2: Project Characteristics

Projects have some or all of the following characteristics:

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.

2.2. General Concepts on repository project management system


Repository project management deals with various aspects of a project such as dividing the
whole project into smaller tasks and subtasks, allocating resources to tasks, assessing risks that
can cause delays, communicating project status with clients and stakeholders, etc. that
collectively decides the success of the project.

The prime function of a repository project management system is to assist managers with their
everyday project management responsibilities.

Summarizing the modern project management system, you can consider it as an assembly of


tools that help you to accomplish various activities within project management. Some of the
most common activities that a project management system can assist you with are as follows:

 Project scheduling and task management

 Budgeting and cost control

 Risk management 

 Developing team coordination and collaboration

 Project report creation

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.

2.2.2. Features of repository project management system?

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.

ii. Resource management


Resource allocation planning is the process that describes what type of resource is needed
and at what time that is critical for resource management. So, it is convenient to use a

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.

iii. Dependencies, milestones, and critical path


It is quite common to dig into a project where the tasks are connected to each other, like
the 2nd task may be connected to the 10th task. In these cases, tasks cannot be done
separately from each other. It is fair enough to have a system where you can define all the
development stages of a project along with, task dependencies. Also, setting milestones
to mark specific points in a project will make sure if your project is moving in the right
direction.

iv. Ease of use


Ease of use is a priority requirement for repository project managers who unquestionably
have to juggle numerous projects and people at the same time. They generally don’t like
using tools that can be difficult to use and drain the resources of small businesses. A
repository project management system should be easily accessible to employees using
multiple devices, it should have a minimalistic design with a simple drag-and-drop
interface, easy functionality, and smooth maintenance and support.

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.

vi. Effective time tracking


More and more managers are longing for time tracking as an important feature for better
planning, accurate time estimation, and working with great precision on project tasks. A
project management system with a time tracking tool will improve the way projects move
forward.

vii. Customizable workflows


Every team has to work using different techniques and tools because one-size doesn’t fit
all. Customization is the way for modern teams to work effectively. According to the
team’s needs, a system should be flexible enough to adapt to a unique process that tracks
work progression. Custom workflows in a project management system will track work
progress accurately. It becomes easy to know who is working on what and which stage of
the workflow it’s in for easy monitoring.

viii. Collaborate easily


Collaboration is a big part of project management and when you’re using a project
management system, it should be easier for you to collaborate on all the projects. The
system should allow you to share documents, files, status, timelines, and tasks easily and
quickly with a large number of people. Discussions and chat should be easily done with
respect to both remote and in-house teams.

ix. Delegate tasks easily


When you’re managing a group of people, it’s good to delegate tasks to each individual
for ensuring the successful completion of the project. Your project management system

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.

2.3. Related Works

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.

For teams who practice agile methodologies, Jira Software provides scrum and kanban


boards out-of-the-box. Boards are task management hubs, where tasks are mapped to
customizable workflows. Boards provide transparency across teamwork and visibility into
the status of every work item. Time tracking capabilities and real-time performance reports
(burn-up/down charts, sprint reports, velocity charts) enable teams to closely monitor their
productivity over time.

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.

Figure 3: Sample of Jira software project page

ii. Pro Workflow


ProWorkflow is a project management solution that allows smooth collaboration between
the users and their teammates by keeping the projects easy to monitor and manage. It can
be useful to individual freelancers and businesses of any scale. The platform features a
Homepage Dashboard where projects are displayed and managed. All important
information such as the status of completed, future, and currently active projects can be
viewed. Users can help keep every involved personnel in the loop with the Messaging

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.

Figure 4: Pro Workflow Project screen

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.

3.2. Proposed Methodology


Due to the broadness and complexity of this project, I decided to use the waterfall model for the
software development life cycle together with the UML methodology.

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 −

i. Requirement Gathering and analysis − All possible requirements of the system to be


developed are captured in this phase and documented in a requirement specification
document.

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.1. User requirements


 This system shall enable students of a particular institution (Computer Engineering
department) to submit their projects to lectures by uploading into their respective
repository.
 Lecturers should be able to assign tasks to students.
 Lecturers and students should be able to split projects into smaller tasks.

3.3.2. System requirements


 The system shall provide a system for students to register and login.
 The system shall secure user data and information.
 The system shall provide dashboard depending on user role.

3.3.3. Functional requirements


 Admins and students can add a project.
 Admin and student can update state of project (open, closed, on-going and closed)
 Admins can Add other admins.
 Admins can block students.
 Admins can give users authority
 System keeps record of all work done by user both student and lecturers.
 No student can access another students account.

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.3.5. Non-functional requirements

 Usernames and emails are unique.

 All users have just a single account.

3.4. Design

3.4.1. Use Case Diagrams


A use case is a list of steps that illustrate how a process will be carried out in a system. It
is a description of how a person who actually uses that process or system will accomplish
a goal. It's typically associated with software systems, but can be used in reference to any
process.

Three elements that a use case must contain:

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.

Figure 6: Repository Project Management System Use Case Diagram

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

Figure 7: Repository project management system Class Diagram

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.

Figure 8: Repository project management system ER Diagram

28
3.4.4 Mock-up designs

Figure 9: Pencil design of staff dashboard

29
Figure 10: Pencil design of Students dashboard

3.5. Global Architecture of the solution

The global architecture of solution proposed for this system is the client server architecture.

Client-server architecture: It’s an architecture of a computer network in which many clients


(remote processors) request and receive service from a centralized server (host computer). Client
computers provide an interface to allow a computer user to request services of the server and to
display the results the server returns. Servers wait for requests to arrive from clients and then
respond to them. Ideally, a server provides a standardized transparent interface to clients so that
clients need not be aware of the specifics of the system (i.e., the hardware and software) that is
providing the service.

30
Figure 3.6: Client-Server Architecture

3.6. Description of the resolution process


From the global architecture diagram of the solution, the repository project management system
uses the client-server architecture. In this client-server model, many clients can connect to the
server application and request information about the system. The server has to process the
request and send the response back to the respective client.

3.7. Partial Conclusion


This section has laid the various analysis and designs that would be used in the implementation
of the repository project management system. The next section will focus on the implementation
of these designs and the various test carried out to validate the system.

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.

4.2. Tools and materials used


Below are the list of tools and materials used to be able to realize this project.
4.2.1. Programing language tools used
 HTML (Hyper Text Markup Language) is the computer language that facilitates
website creation. The language, which has code words and syntax just like any other
language, is relatively easy to comprehend. It is the set of markup symbols or codes
inserted into a file intended for display on the Internet. The markup tells web browsers
how to display a web page's words and images. Each individual piece markup code
(which would fall between "<" and ">" characters) is referred to as an element, though
many people also refer to it as a tag. Some elements come in pairs that indicate when
some display effect is to begin and when it is to end.

 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.

 Bootstrap 4: Bootstrap is a potent front-end framework used to create modern websites


and web apps. It's open-source and free to use, yet features numerous HTML and CSS
templates for UI interface elements such as buttons and forms. Bootstrap also supports
JavaScript extensions. Bootstrap 4 is the newest version of Bootstrap; with new
components, faster stylesheet and more responsiveness. Bootstrap 4 supports the latest,
stable releases of all major browsers and platforms.

 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 ]

4.2.2. Integrated development environments used


 Visual paradigm: Visual Paradigm is a UML CASE Tool supporting UML 2, SysML
and Business Process Modeling Notation from the Object Management Group. In
addition to modeling support, it provides report generation and code engineering
capabilities including code generation.

 VS Code: Visual Studio Code is a streamlined code editor with support for development


operations like debugging, task running, and version control. It aims to provide just the
tools a developer needs for a quick code-build-debug cycle and leaves more complex
workflows to fuller featured IDEs, such as Visual Studio IDE.

 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.

 MySQL Workbench: MySQL Workbench is a visual database design tool that


integrates SQL development, administration, database design, creation and maintenance
into a single integrated development environment for the MySQL database system.

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.

4.3.1 MVC Architecture Components


Model–view–controller 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.

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.

Figure 11: MVC


Architecture

4.3.2. Requirements
RAM: 4GB

ROM: 500GB

OS: Windows 10

36
Processor speed: 2GHz

Dependencies: MySQL

Text Editor: Virtual Studio Code

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.

Figure 13 List of migration tables

4.3.5 Code structure

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.

Figure 16: List of views used in the RPMS

4.3.6 Deployment

40
The project was hosted locally one the xamp server. The server was started using the php
artisan serve command

4.4 Presentation and interpretation of results


This section focuses of displaying some pages of the views of the application and how they
function.

 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.

Figure 17: Welcome page

41
 Registration form: This form allows the user to be able to create a student account using
his or her name email and password.

Figure 18: Registration page

 Login Page: This page allows the user to login into his or her account using the email
and password.

42
 Student Dashboard:

Figure 19: Students dashboard

 Instructor Dashboard:

43
Figure 20: Instructor Dashboard

 Project view

Figure 21: Project list

Figure 22: Add new project form

44
Figure 23: Upload project form

4.5. Evaluation of the solution

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.

4.6. Partial conclusion

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.

CHAPTER 5. CONCLUSION AND FUTURE WORKS

5.1. Summary of findings


The repository project management system is very important for any enterprise that work on
projects. The repository project management system will better the world of project
management. Due to the fact that most companies and enterprises in Cameroon still use the paper
and pen method to manage their projects workers and team members, they waste so much time
and resource. Using a repository project management system will go a long way to solve this
problem and bring about greater productivity.

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.

5.4. Difficulties encountered


As in every project there are always hindrances and compromising situations faced in the
execution process, in the development of this project I faced a number of challenges, which are
as follow:

 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/

er diagram. (2009, january 23). Retrieved from guru99.com: https://www.guru99.com/er-


diagram-tutorial-dbms.html

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.

Glosarry/Css. (2012, 6 4). Retrieved from Atinternet:


https://www.atinternet.com/en/glossary/css/

investopedia/terms. (2003). Retrieved from investopedia.com:


https://www.investopedia.com/terms/h/html.asp

piont, T. (2019, dec). Retrieved from Tutorialspoint:


https://www.tutorialspoint.com/sdlc/sdlc_overview.htm

project management. (2013). Retrieved from free managenent ebooks: http://www.free-


management-ebooks.com/faqpm/principles-02.htm#:~:text=H.,complete%20specific
%20goals%20and%20objectives.

Project management system. (2007, April 6). Retrieved from ProofHub:


https://www.proofhub.com/articles/project-management-system

project management.asp. (2020, may monday). Retrieved from Investopedia:


https://www.investopedia.com/terms/p/project-management.asp

pros and cons of vui js. (2017, december wednesday). Retrieved from Altexsoft:
https://www.altexsoft.com/blog/engineering/pros-and-cons-of-vue-js/

proworkflow/features. (2019, may 23). Retrieved from Comparecamp.com/Proworkflow:


https://comparecamp.com/proworkflow-review-pricing-pros-cons-features/

Reg Co/mysql. (2011, Dec Friday). Retrieved from 123-Reg: https://www.123-


reg.co.uk/support/servers/what-is-mysql-and-why-do-i-need-it/

Repository. (2021, feb). Retrieved from Techterms.com:


https://techterms.com/definition/repository

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.

technology/Client server Architecture. (2017). Retrieved from Britannica:


https://www.britannica.com/technology/client-server-architecture

utpedia Desertification. (2015, feb 4). Retrieved from Utpedia:


http://utpedia.utp.edu.my/3814/1/RAIHANAH_11409_Dissertation.pdf

wiki. (2021, may tuesday). Retrieved from wikipedia: https://en.wikipedia.org/wiki/Laravel

49

You might also like