Internship Report
Internship Report
INSTITUTE OF TECHNOLOGY
Ousman Muhammed
NSR/1936/13
October 4,2024
Declaration
I, ousman muhammed, hereby declare that the internship report submitted here is a
result of my own efforts and contributions during my four-month internship at
1888EC. This report has not been previously submitted to any other institution for
any academic purposes.
Approved by:
Supervisor Name: Kibru Demeke
Signature :
Ousman muhammed
Nsr/1936/13
Arbaminch university
Acknowledgment
I would like to extend my heartfelt gratitude to the team at 1888EC for providing me
with the opportunity to be a part of their innovative venture. Special thanks to my
supervisor, [Supervisor Name], for their invaluable guidance throughout my
internship. I also appreciate the support provided by my university and my faculty
members at Arba Minch University, who facilitated my placement at this outstanding
organization.
I also wish to thank my colleagues and the back-end development team at 1888EC for
their continuous support and collaboration, which greatly enhanced my learning
experience.
Executive Summary
During my four-month internship at 1888EC, a startup venture studio founded by
Solomon Kassa in 2020, I worked as a back-end developer on a project called
LinkPharm, a robust pharmaceutical marketplace. The platform is designed to
address shortages in the Ethiopian pharmaceutical supply chain by connecting
wholesalers, distributors, and manufacturers.
This report details my tasks, the challenges I encountered, the solutions I implemented,
and the skills I gained during the internship. Additionally, it provides insights into the
company's history and its efforts to foster innovation in Ethiopia’s entrepreneurial
ecosystem.
Table of Contents
1. Project Overview
2. Company Background
3. Internship Experience
o Company Selection
o Departmental Workflow
o Tasks Executed
o Challenges and Solutions
4. Benefits Gained
5. Conclusion and Recommendations
Chapter one
1. Project Overview
One of the primary reasons for these issues is the absence of a centralized,
streamlined system to manage orders, track shipments, and efficiently monitor
inventory levels. Without such a system, wholesalers rely heavily on fragmented
communication channels, manual processes, and informal networks to fulfill orders,
leading to delays, miscommunication, and an inability to anticipate or address supply
shortfalls in a timely manner. This inefficiency also makes it difficult for wholesalers
to respond swiftly to fluctuating market demands, further exacerbating stock
shortages.
1.5 Objectives:
Develop a Secure Platform: Build and maintain secure user authentication
and management systems.
Optimize Order Management: Create a system that allows users to place,
track, and fulfill orders efficiently.
Enhance Scalability: Design the platform’s backend architecture to support
future growth and higher traffic volumes.
1.6 Methodology:
The development process at 1888EC adhered to the Agile methodology, which
promotes flexibility and iterative cycles for continuous improvement and adaptation.
Agile allowed the team to break down the project into smaller, manageable tasks
within sprints, fostering an environment of rapid iteration and collaboration. Each
sprint cycle involved planning, development, testing, and review phases, enabling the
team to focus on specific features and deliver incremental improvements to the system.
Development Workflow
Nest.js:
I used Nest.js for its ability to handle large-scale enterprise applications with a
modular structure. The framework's flexibility allowed me to efficiently build
RESTful APIs that managed user authentication, data validation, and user roles.
Nest.js also enabled smooth integration with other microservices in the platform,
ensuring scalability and maintainability of the backend services.
PostgreSQL:
PostgreSQL was employed as the relational database to manage and store user
data, order information, and other critical platform-related data. My tasks
included designing and implementing database schemas, ensuring that data
integrity and relationships between entities (such as users, roles, and permissions)
were maintained. I also optimized SQL queries to improve data retrieval times
for user-related operations.
Drizzle ORM:
Drizzle ORM was utilized to interact with PostgreSQL in a more structured and
type-safe way. As a modern, lightweight ORM, Drizzle simplified database
interactions by allowing me to define database schemas in code using TypeScript,
leading to better maintainability and type safety. This approach minimized errors
and ensured that changes in database schemas were reflected directly in the
codebase, reducing potential runtime issues.
Docker:
I utilized Docker to containerize the backend services, ensuring consistency
across various environments, from development to production. Docker simplified
the deployment process, allowing the team to run the application in isolated
containers with pre-configured dependencies, thus avoiding issues related to
environment discrepancies.
Swagger:
Swagger was integrated into the project to document and test the APIs. By
generating detailed API documentation automatically, Swagger made it easier for
the frontend team to understand and consume the backend services. I used
Swagger to define API routes, response formats, and required parameters,
ensuring that the team could test the APIs without requiring backend assistance.
This improved collaboration and allowed for faster iterations when integrating
frontend and backend functionalities.
Redis:
Redis was used as a caching mechanism to enhance the performance of
frequently accessed data, particularly for user authentication sessions. By storing
temporary data in memory, Redis improved response times and reduced the load
on the PostgreSQL database, especially when dealing with repetitive user login
requests.
Git:
Version control was managed through Git, where the entire development team
collaborated efficiently by using branches and creating pull requests. Git allowed
for seamless integration of new features into the main codebase, and regular code
reviews were conducted to ensure high-quality, stable releases.
My Back-end Responsibilities
User Management:
I developed and optimized the user management module, which included user
registration, login, password management, and role-based access control (RBAC).
I implemented JWT (JSON Web Tokens) for secure user sessions, ensuring that
users could authenticate and maintain sessions without exposing sensitive data.
API Development:
I was responsible for building several Restful API endpoints that allowed the
front-end to interact with the back-end securely and efficiently. These endpoints
handled operations like user registration, login, order placement, and profile
management. I ensured that the APIs were well-documented using Swagger,
which allowed the front-end team to easily integrate and test API calls.
Security Measures:
To protect sensitive user data, I implemented various security measures,
including password hashing, data encryption, and input validation to prevent
SQL injection attacks. I also integrated rate-limiting to prevent brute-force
attacks on the login endpoints.
Database Management:
I designed the database structure to handle relational data, ensuring that
relationships between users, roles, and orders were correctly mapped. I
implemented indexes on critical fields to improve the performance of queries,
especially when the database scaled with more users and data.
Collaboration and communication:Although my primary focus was on back-
end development, effective collaboration with other teams was crucial to ensure a
smooth flow of the project. I frequently communicated with the front-end
developers to align the API responses with the front-end's requirements,
particularly in how user data was displayed and managed. Additionally, I
collaborated with the DevOps team to ensure smooth integration of back-end
services into the CI/CD pipeline and seamless deployment using Docker.
Supply chain management systems in healthcare have been the focus of several
studies, particularly in regions where infrastructure challenges affect the delivery of
medical supplies. For instance, platforms like SAP Ariba and Oracle SCM Cloud
have demonstrated the effectiveness of centralized supply chain systems in improving
order accuracy and reducing lead times.
1888EC was founded in 2020 by Solomon Kassa, a renowned tech consultant and
strategist. The name "1888EC" honors the Battle of Adwa, a pivotal moment in
Ethiopian history, symbolizing resilience and victory. The venture studio was
established with the goal of driving entrepreneurship and innovation in Ethiopia,
focusing on digital transformation and wealth creation.
The "EC" in 1888EC stands for multiple things: Entrepreneurship Center, Equity
Central, and Ethiopian Calendar. This multi-layered representation reflects the
company's mission to inspire and create new victories in the entrepreneurial world,
much like the victory at Adwa symbolized triumph against overwhelming odds.
Startup Creation:
1888EC specializes in identifying promising startup ideas and nurturing them into
full-fledged businesses. The studio focuses on industries that present significant
opportunities for innovation, ranging from healthcare and education to tourism and
financial services.
Investment:
The studio co-invests in startups that demonstrate potential for scalability and market
impact. By partnering with other investors, 1888EC provides the necessary financial
backing to help startups expand their operations and accelerate their market entry.
1.LinkPharm
Sector: Healthcare
Description: Linkpharm is a robust pharmaceutical marketplace designed to
address supply chain inefficiencies in Ethiopia’s healthcare sector. The
platform connects wholesalers, distributors, and manufacturers, allowing them
to efficiently source medical equipment, reagents, and other pharmaceutical
products. By providing a seamless ordering system, LinkPharm ensures that
healthcare providers have access to the medical supplies they need in a timely
and efficient manner.
2.Triopia
Sector: Tourism
Description:Triopia is an e-tourism marketplace aimed at promoting
Ethiopian experiences and local destinations to a global audience. The
platform connects tourists with unique travel experiences, from cultural
immersions to adventure tours, all while showcasing the rich heritage of
Ethiopia. Triopia is designed to boost local tourism by helping businesses and
guides promote their services internationally.
3.LoanLink
Sector: Financial Services
Description: LoanLink is a financial services platform that facilitates the
distribution of loans to policy-driven projects in Ethiopia. The platform is
designed to support development initiatives by offering access to financial
resources for projects that align with government and institutional policies.
LoanLink focuses on helping projects that are aimed at driving economic
growth and social development.
4.Enibla
Sector: Food Services
Description: Enibla is a network of outlets offering quick, affordable, and
high-quality Ethiopian cuisine to the working-class urban population. The
business model focuses on delivering fast meals with a modern twist, catering
to the growing demand for convenient food options in urban centers. Enibla’s
emphasis on speed and affordability makes it a popular choice for busy
professionals looking for authentic Ethiopian food.
5.EthioSpare.com
Sector: Automotive
Description: EthioSpare.com is an e-commerce platform that specializes in
retailing high-quality vehicle spare parts. The platform provides a reliable
source for customers to purchase spare parts, with the added convenience of
home delivery. EthioSpare.com is positioned as a trusted marketplace for
sourcing both new and used vehicle components, aiming to simplify the spare
part procurement process for vehicle owners in Ethiopia.
Founder:
The Founder of 1888EC, Solomon Kassa, plays a pivotal role in shaping the
company’s strategic vision. As the driving force behind the company’s mission to
accelerate innovation and entrepreneurship in Ethiopia, the Founder provides
direction on the overall portfolio of startups, identifying growth opportunities,
and ensuring that 1888EC remains aligned with its core mission to foster
disruptive innovations.
Head of Operations:
The Head of Operations oversees the day-to-day functioning of the organization,
ensuring that all teams have the resources they need to execute their tasks. This
role involves streamlining processes, managing timelines, and ensuring that
projects are completed on schedule. The Head of Operations also works closely
with team leads to remove bottlenecks and ensure smooth coordination between
departments.
Studio Manager:
The Studio Manager manages the operational aspects of the venture studio,
including resource allocation, team formation, and the execution of multiple
startup projects. This role ensures that the venture studio remains productive, and
projects are being developed in alignment with 1888EC’s standards and goals.
The Studio Manager acts as a liaison between the executive team and the project
teams, facilitating communication and ensuring operational efficiency.
Tech Lead:
The Tech Lead plays a crucial role in overseeing all technical development
activities within the studio. Responsible for making critical technology decisions,
the Tech Lead ensures that each startup is equipped with the best technical
solutions. This includes supervising developers, managing software architecture,
and ensuring that scalable and efficient technologies are employed for each
project. The Tech Lead also collaborates with product teams to ensure that
technical development is aligned with business goals.
Head of Finance:
The Head of Finance manages the financial aspects of 1888EC’s operations,
ensuring that both the studio and its startups have sound financial strategies. This
role involves overseeing budgets, managing investments, and advising on the
financial health of each project. The Head of Finance is responsible for ensuring
that startups receive the financial support they need for successful development
and market entry.
Cross-Functional Teams:
Developers:
Responsible for building the technical infrastructure and features of the product,
the development team focuses on implementing scalable, secure solutions to
bring startup ideas to life.
Product Managers:
Product managers oversee the product development process, ensuring that the
product vision aligns with the market needs and customer expectations. They
collaborate with developers and marketing teams to ensure successful launches.
Marketing Specialists:
Marketing specialists are tasked with promoting the startup’s products, managing
brand identity, and executing marketing campaigns that reach the right audience.
They ensure that the products gain visibility in the marketplace and attract
potential customers and investors.
Financial Analysts:
Financial analysts assist the Head of Finance in managing budgets, forecasting
financial performance, and advising on investments. They provide financial
insight to ensure that startups remain financially viable throughout their
development phases.
Collaborative Environment:
1888EC encourages close collaboration between its teams, fostering a fluid and
dynamic environment where ideas are shared and executed rapidly. The organization
promotes inter-departmental communication, with regular meetings between
product, development, and finance teams to ensure alignment on project goals. This
approach allows for quick iteration, adaptability, and the ability to pivot in response to
market changes or emerging opportunities.
The agile structure, combined with a robust leadership team, ensures that each startup
under 1888EC receives the support it needs to develop innovative solutions and scale
successfully.
2.5 Workflow:
The workflow at 1888EC is highly iterative and is designed to accommodate the fast
pace of startup development. Projects are typically broken into phases:
Within this structure, my work as a backend developer fit into the prototyping and
testing phases for LinkPharm.
CHAPTER 3
Internship Experience
3.1 Company Selection:
During my internship, I was placed in the backend development team. Our team
followed a scrum-based workflow, with daily standups and bi-weekly sprint
planning sessions. Each team member had specific responsibilities but also
collaborated with others to ensure smooth integration of components. As part of this
team, I interacted closely with frontend developers, product managers, and business
analysts.
We used tools like Slack for internal communication. Version control was managed
through Git, where we implemented regular code reviews to maintain code quality
and consistency. The work was highly collaborative, which helped me understand the
importance of communication in a cross-functional environment.
4.Security Enhancements:
1.Data Consistency:
With the potential for high traffic, especially during peak business hours, there
was a need to optimize the performance of the backend.
3.Security Challenges:
The user management system was fully functional, providing secure and
scalable authentication services.
The order management system was integrated into the platform, allowing
wholesalers to interact with manufacturers seamlessly.
The platform’s performance was optimized, ensuring that it could handle high
traffic without compromising on speed or reliability.
The system’s security was fortified, making it robust against common cyber
threats.
The success of these implementations was validated through user acceptance testing
(UAT), where stakeholders confirmed that the platform met all the required
specifications. Further improvements were planned for future releases, including
expanding the API to support additional features like bulk ordering and reporting
analytics.
CHAPTER 4
BENEFITS GAINED
I was able to apply and deepen my theoretical knowledge in several key areas:
Optimize the Database for Scaling: As the platform grows, there will be an
increasing number of users and transactions. I recommend continuing to
optimize the database for scaling by implementing horizontal scaling solutions
like sharding.
Improve the Search Functionality: Adding advanced search filters and an
intelligent recommendation system would enhance the user experience,
especially for wholesalers who need to find specific products quickly.
Enhance the Analytics Module: By integrating more robust data analytics
features, the platform could offer manufacturers and wholesalers insights into
their sales trends, helping them make informed business decisions.
6. Appendices
o Nest.js
o PostgreSQL
o Docker
o Git
o Redis
o HTTPS, OAuth 2.0
o JWT Authentication
o User Registration
o Order Placement