EKUBIF
Y SHOWCASE
INTRODUCTION
1 2 FEATURES AND
FUNCTIONALITIES
CONTENTS
3 4
DEMONSTRATION OF
CHALLENGES FACED AND
HOW THE CODE WORKS
FUTURE IMPROVEMENTS
INTRODUCTION
INSPIRATION
Ekubify is a web application inspired by the
traditional Ethiopian Ekub system.
PROBLEM STATEMENT
Manual management of group
savings is tedious and error-prone.
Lack of transparency in
fund collection and
distribution.
Difficulty in tracking
contributions and lotted
months.
SOLUTION PROVIDED BY EKUBIFY
Digital platform for
organizing and managing
group savings.
01 Real-time tracking of
contributions and
payments.
02
03
04
Automatic assignment
of lotted months for
fairness.
GOAL OF THE PROJECT
To simplify the
management of Ekub
groups. To increase trust and
AUTOMATION
TRUST transparency among
members.
CORE FEATUERS
User Registration and ○ Create and Manage Ekub
Authentication: Groups:
• Custom user model using Django's • Admin users can create and
Abstract User. manage Ekub groups.
• Fields: Username, Full Name, • Each group has a unique name,
Phone Number, Password. duration (in months), and
• Secure login and registration monthly contribution amount.
system.
ADVANCED FEATURES
○ Assign Lotted Months Randomly:
■ Using the [Link]() method for fairness.
■ Each member is assigned a lotted month once the Ekub
starts
○ Track Contributions and Payments:
■ Contributions are tracked monthly.
■ Total contributions and payment history are stored for
each member.
ADVANCED FEATURES
○ Dynamic Status Updates:
■ open: Accepting members.
■ ongoing: Contributions in progress.
■ closed: All members have received their turn.
Payment Integration with Chapa:
■ Secure and reliable payment processing.
■ Members can pay their monthly contributions using
Chapa
BACKEND TECHNOLOGIES
Chapa Payment Gateway:
• Secure payment processing
and contribution tracking.
• Real-time payment status
Django (Python Framework): updates with webhooks.
• Backend development with Soft UI Dashboard Template:
models, views, and forms. • Used as the base template
• Custom User model for for admin interface and
authentication and user dashboards.
management. • Enhanced UX with pre-
• Django ORM for database designed UI components
interactions
CHALLENGES FACED
CHALLENGES
Development Hurdles
Understanding One-to-One and ForeignKey Relationships:
Confusion about OneToOneField vs ForeignKey.
Solution: Detailed study and practical implementation
of both relationships.
TECHNICAL CHALLENGES
Model to database connection
Challenge: Making [Link] interact with the database.
Solution: Step-by-step By researching the terminal codes
to connect [Link] interact with the database .
Beginner-Level Learning Curve:
● Challenge: Learning Django, and payment integration
as a complete beginner.
● Solution: Breaking down tasks into smaller parts and
learning step by step.
Future Improvements
PART 04
Advanced Reporting and Analytics:
Detailed reports on contributions, payment
history, and group performance.
Data visualization using charts and graphs.
Improved Security
and Data Privacy
Implementing two-factor
authentication (2FA).
Ensuring data encryption and
secure payment processing.
Scalable Architecture:
● Refactoring the application to support more users and Ekub groups.
● Implementing microservices architecture for better scalability.
Gamification for User
Engagement:
Introducing gamification elements
like badges and rewards.
Leader boards for most active
members.
Achievement milestones to
encourage consistent participation.
SOCIAL AND COMMUNITY FEATURES:
Enabling social sharing of Ekub
participation for better engagement.
Allowing members to leave feedback or
reviews.
Community forums for members to discuss
and share experiences.
INTEGRATION WITH POPULAR
PAYMENT PLATFORMS:
● Adding support for additional payment gateways like
telebirr, banks.
● Allowing members to choose their preferred payment
method.
DEMONSTRATION OF HOW THE CODE WORKS
Data Models and Relationship
Member Model:
• Links users to specific Ekub CustomUser Model:
Extends Django's AbstractUser
groups.
• Tracks total contributions, lotted to include fullname and
phonenumber.
month, and if they have received
Ensures unique usernames
their turn.
• Uses OneToOneField to ensure a and secure password storage.
user can join only one Ekub at a
time. Ekub Model:
Represents an Ekub group with
Payment Model: fields like duration_months,
Stores payment contribution_per_month,
records for each status.
member. Linked to CustomUser using
Tracks payment status ForeignKey to track the admin
(pending, successful, who created it.
failed) and
transaction reference.
DEMO: BUSINESS LOGIC AND METHODS
DYNAMIC CALCULATIONS Random Assignment of Lotted
WITH PROPERTIES: Months:
Using start_ekub() method to shuffle members and
REGISTRATION_LIMIT: Dynamically assign months.
calculates the total required Ensures fairness by randomizing the order.
amount to start the Ekub.
Status Updates:
update_status() method to automatically change status:
From open to ongoing when registration limit is
met.
From ongoing to closed when all members receive
their turn.