* REPUBLIQUE DU CAMEROUN
* Paix – Travail – Patrie
* MINISTRY OF HIGHER EDUCATION
* UNIVERSITY OF BUEA
* FACULTY OF ENGINEERING AND TECHNOLOGY
* DEPARTMENT OF COMPUTER SCIENCE
* INTERNSHIP REPORT
* Title: DESIGN AND IMPLEMENTATION OF A TASK MANAGEMENT SYSTEM: A
CASE STUDY OF GENTECH SOLUTIONS LTD.
* Submitted in Partial Fulfillment of the Requirements for the Award of the
Bachelor of Engineering (B.Eng.) in Software Engineering
* By: JOHN DOE
* Matricule Number: UB21B000
* Academic Supervisor: Dr. Jane Smith
* Professional Supervisor: Mr. Michael Epie (Head of Software Development)
* Host Company: Mimha Solutions Ltd., Douala
Academic Year: 2024/2025
Dedication
This report is dedicated to my parents
Acknowledgments
I would like to express my sincere gratitude to my academic supervisor, Dr.
Jane Smith, for her guidance, constructive feedback, and invaluable advice
throughout the development of this report. Her expertise was instrumental in
shaping my understanding of software engineering principles.
My profound thanks also go to Mr. Michael Epie, my professional supervisor
at Mihma Solutions Ltd., for providing me with the opportunity to intern at the
company and for his mentorship. The entire team at Mihma Solutions,
especially the software development team, deserves a special mention for
their support and for creating a welcoming and collaborative environment.
Finally, I am grateful to my family and friends for their continuous support
and encouragement.
Abstract
This report documents the experience gained during a six-month internship
at Gentech Solutions Ltd., a software development company in Buea,
Cameroon. The primary objective of the internship was to apply theoretical
knowledge of software engineering to a real-world project. The main project
involved the design and implementation of a web-based Task Management
System to address the company's challenges with project and team
coordination. The existing manual process of task allocation and tracking
through spreadsheets and email was inefficient, leading to communication
breakdowns and missed deadlines. The new system was developed using the
Agile methodology and a modern tech stack including Python (Django
framework) for the backend, and HTML, CSS, and JavaScript for the frontend.
PostgreSQL was used as the database. The system features user
authentication, task creation and assignment, progress tracking, and
notifications. This project successfully streamlined internal workflows,
improved team communication, and provided a centralized platform for
project oversight. This report details the problem analysis, system design,
implementation process, and the professional and technical skills acquired
during the internship. The experience was invaluable, bridging the gap
between academic theory and professional practice.
Table of Contents
Page
Dedication....................................................................ii
Acknowledgments........................................................iii
Abstract........................................................................iv
Table of Contents........................................................v
List of Figures..............................................................vi
List of Abbreviations...................................................vii
PART I: PRESENTATION OF THE HOST COMPANY
1.0 Company Profile
1.1 Historical Background
1.2 Vision, Mission, and Values
1.3 Organizational Structure
1.4 Location and Contact
1.5 Products and Services
PART II: ACTIVITIES AND CONTRIBUTIONS
2.0 Problem Statement and Analysis
2.1 Introduction to the Department
2.2 Problem Statement
2.3 Objectives of the Internship
2.4 Analysis of the Existing System
2.5 Requirements Analysis
3.0 Conception and Implementation of the Solution
3.1 Methodology
3.2 Tools and Technologies
3.3 System Design
3.4 Implementation
3.5 Testing and Deployment
PART III: EVALUATION AND CONCLUSION
4.0 Personal and Professional Evaluation
4.1 Challenges Faced
4.2 Knowledge Gained
4.3 Teamwork and Professional Experience
5.0 Conclusion and Recommendations
5.1 Conclusion
5.2 Recommendations
Bibliography............................................................
Chapter One
Company Profile
1.1 Historical Background
Mihma Solutions Ltd. was founded in 2018 by a team of software
professionals with the goal of providing innovative tech solutions to local and
international businesses. Starting as a small startup focused on web
development, the company has grown to include mobile app development,
UI/UX design, and IT consulting services.
1.2 Vision, Mission, and Values
Vision: To be the leading provider of cutting-edge software solutions in
Cameroon and beyond.
Mission: To empower businesses by developing scalable and user-centric
software that drives efficiency and growth.
Values: Innovation, Integrity, Teamwork, and Customer Satisfaction.
1.3 Organizational Structure: (Insert a simple organizational chart here)
The chart shows the CEO at the top, with departments such as Software
Development, Marketing, Administration, and Human Resources reporting to
them. The intern's position is placed within the Software Development
department, reporting to the Head of Software Development.
The company offers a range of services including custom web application
development, Android and iOS app development, enterprise software
solutions, and IT infrastructure management.
Chapter Two
Problem Statement and Analysis
2.1 Introduction to the Department
I was attached to the Software Development Department, which is
responsible for the entire software development lifecycle, from requirements
gathering to deployment and maintenance. The team is composed of senior
developers, junior developers, and UI/UX designers, working collaboratively
on multiple client projects.
2.2 Problem Statement
The department faced significant challenges in managing internal tasks and
tracking progress on various projects. The existing method relied heavily on
a combination of WhatsApp groups for communication, email for task
assignment, and shared Google Sheets for progress tracking. This manual
approach resulted in:
Disorganized information and difficulty in finding specific task details.
Lack of real-time visibility into project status.
Poor accountability and challenges in monitoring individual
contributions.
Frequent miscommunication and delays in task completion.
2.3 Objectives of the Internship
The primary objective was to develop a web-based Task Management System
to centralize all task-related activities. This involved:
Conducting a thorough requirements analysis.
Designing a scalable and intuitive system architecture.
Implementing core functionalities such as task creation, assignment,
and tracking.
Ensuring the system is secure and easy to use.
Learning and applying professional software development practices.
2.4 Analysis of the Existing System
A flowchart is used to illustrate the manual process.
(Flowchart) Manager assigns task via email -> Developer receives email -
> Developer updates a Google Sheet -> Manager checks the Google Sheet
for updates.
This is followed by a discussion of its limitations as outlined in the problem
statement.
2.5 Requirements Analysis
Functional Requirements
User authentication (login/logout)
User roles (manager/developer)
Task creation
Task assignment
Status updates (e.g., "To-Do," "In Progress," "Completed")
Task prioritization
Notifications
Non-Functional Requirements
The system should be secure (user data protection),
Scalable
A responsive design for accessibility on different devices.
Chapter Three
Conception and Implementation of the Solution
3.1 Methodology
The Agile Scrum methodology was adopted for this project. The project was
broken down into a series of two-week sprints. This allowed for rapid
prototyping, continuous feedback from the professional supervisor, and the
flexibility to adapt to new requirements.
3.2 Tools and Technologies
Backend: Python 3.9, Django 4.2.
Frontend: HTML5, CSS3 (with Bootstrap 5 for responsiveness),
JavaScript, and jQuery for dynamic interactions.
Database: PostgreSQL 14.
Version Control: Git, hosted on GitHub.
Development Environment: VS Code.
UI/UX Design: Figma (for initial wireframing).
3.3 System Design
(Insert a Use Case Diagram here) illustrating user interactions (Manager
logs in, creates a task; Developer logs in, views tasks).
(Insert an Entity-Relationship Diagram - ERD) showing the relationships
between key entities like User, Task, and Project. The entities would have
attributes like Task_ID, Title, Description, Assigned_To, Status, Due_Date.
(Insert a simple System Architecture Diagram) showing the client
(browser), the web server (Django), and the database (PostgreSQL)
connected.
3.4 Implementation
The implementation was done in phases, following the sprints.
Sprint 1: Setup of the Django project, database configuration, and
implementation of user authentication. (Include a small, commented
code snippet of the models.py file for the User model, or a snippet of
the login view).
Sprint 2: Development of the task creation and display modules.
Sprint 3: Implementation of task assignment, status updates, and
email notifications.
(Include screenshots of key pages: the login page, the dashboard showing
a list of tasks, and the task details page).
3.5 Testing and Deployment
Testing: Unit tests were written for critical backend functions. User
Acceptance Testing (UAT) was performed with a few team members,
who provided feedback on the usability and functionality.
Deployment: The application was deployed on a local server within
the company's network using a virtual environment to ensure
dependency isolation.
Chapter 4
Personal and Professional Evaluation
4.1 Challenges Faced
Technical: Initially, integrating Django with a complex frontend design
posed a challenge. Overcoming this required extensive research and
consultation with my professional supervisor.
Professional: Learning to use Git in a team environment required
adaptation, especially with resolving merge conflicts. I learned the
importance of proper branching and committing practices.
Personal: Managing time and prioritizing tasks efficiently, especially when
facing tight deadlines, was a key skill developed during this internship.
4.2 Knowledge Gained
Technical Skills: I gained hands-on experience with the Django framework,
deepening my understanding of the Model-View-Controller (MVC)
architectural pattern. I also became proficient in using PostgreSQL and
version control with Git.
Soft Skills: My communication and collaboration skills improved
significantly. I learned to articulate technical problems clearly and work
effectively within a team.
4.3 Teamwork and Professional Experience
Working with the Mihma Solutions team taught me the value of structured
meetings (daily stand-ups), code reviews, and providing constructive
feedback. This experience was a perfect bridge between my academic
studies and the expectations of a professional software development
environment.
Chapter Five
Conclusion and Recommendations
5.1 Conclusion
The internship at Mihma Solutions Ltd. was an invaluable learning experience.
The project, the design and implementation of a Task Management System,
was a resounding success. The system is now being used internally and has
significantly improved the team's efficiency and communication. I
successfully applied my academic knowledge of software engineering
principles and acquired practical skills that will be crucial for my future
career.
5.2 Recommendations
For the Company: I recommend that the company consider implementing
a dedicated project management tool for larger client projects and possibly
expanding the Task Management System with features like automated
reporting and Gantt charts.
For Future Interns: I advise future interns to actively engage with their
team, ask questions, and take initiative. The internship is an opportunity to
learn, so they should not be afraid to step out of their comfort zone.
For the University: I recommend that the department continue to
encourage and support internships as they are an essential component of a
well-rounded software engineering education.
Bibliography
(List any books, online articles, or documentation you consulted here,
following a consistent format like APA or MLA)