Profile Information
Name: Femi Ogundipe
Web Profile:
TimeZone: UTC+1 (WAT)
Location: Lagos, Nigeria
Mentor(s) : @AndrewTavis, @Henrikt93, @DeleMike
Introduction
Problem Statement
Language learners often rely on verb conjugation applications to improve fluency. However, most existing solutions are:
- Paid or subscription-based
- Filled with intrusive ads
- Collect user data, raising privacy concerns
- Limited to specific languages or require multiple apps for multiple languages
This creates a barrier for learners seeking a free, privacy-respecting, and multilingual solution.
Background
The Scribe community has already developed:
- Scribe-iOS and Scribe-Android keyboard applications
- Supporting infrastructure: Scribe-Data and Scribe-Server
- Integration with Wikidata for language data
These keyboard applications help second language learners communicate in the language they are learning, leaving a gap for lightweight, high-performance multilingual verb conjugation applications.
Proposed Solution
This project proposes Scribe-Conjugate, a multilingual verb conjugation application for both iOS and Android that:
- Uses Wikidata lexicographical data
- Supports multiple languages in a single app
- Provides fast, offline-capable conjugation lookup
- Maintains zero ads and zero tracking
The application will integrate into existing Scribe repositories, reusing components such as:
- Settings UI
- Data download system
- Shared infrastructure
The core focus will be building the Conjugate tab, which delivers the primary functionality.
Project Goals
- Develop fully functional Scribe-Conjugate apps for iOS and Android
- Enable fast, multilingual verb search and conjugation
- Ensure offline-first capability using downloaded datasets
- Maintain consistency with existing Scribe architecture
- Deliver a privacy-first, open-source user experience
Project Objectives
Expected Outcomes
- A production-ready Conjugate tab integrated into both apps
- Seamless Wikidata-powered verb search system
- Fully implemented verb conjugation interface with filtering
- Cross-language support within a single unified app
Expected Deliverables
- Conjugate tab (Android - Kotlin)
- Conjugate tab (iOS - Swift)
- Wikidata query + caching integration
- Autocomplete search functionality
- Recently conjugated verbs feature
- Downloadable language datasets
- Scrollable & filterable conjugation tables
- Clipboard copy functionality
- Documentation for contributors
Implementation Plan
- Analyze existing Scribe repositories and architecture
- Design data flow between Wikidata, local storage, and UI
- Implement shared logic for:
- Search
- Autocomplete
- Data handling
- Develop platform-specific UI components
- Integrate and optimize performance
- Conduct testing and debugging
- Prepare documentation and final deployment
Project Methodology
- Agile development approach with weekly milestones
- Regular communication via:
- Element (daily/async updates)
- GitHub (Issues, PRs, code reviews)
- Weekly sync meetings with mentors
- Community engagement through discussions and feedback loops
Technical Elements
- Android: Kotlin, MVVM architecture
- iOS: Swift, SwiftUI
- Data Source: Wikidata
- Backend Integration: Scribe-Server APIs
- Local Storage: SQLite / Room (Android), CoreData (iOS)
- Search Optimization: Indexed queries + Caching
- UI Components:
- Search bar with autocompletion
- Conjugation tables
- Filters by tense
- Recently viewed list
Project Timeline
Total Duration: 9 Weeks
Research & Design (Weeks 1-2)
- Study Scribe codebases (iOS & Android)
- Analyze the structure of the data that will be utilized from Wikidata
- Finalize architecture and data flow
- Review Figma designs
- Define APIs and data models
Core Development - iOS & Android (Weeks 3-6)
- Implement the download data UI. This UI will utilize the same UI as Scribe keyboard - Figma
- Implement the verb search UI with multi-language support. This UI will utilize data coming Wikidata
- Implement the recently conjugated component. This component will show the most recent conjugated verbs - Figma
- Build autocomplete system based on data alphabetical next word from the database - Figma
- Develop a scrollable and filterable conjugation view - Figma
- The view can be filtered by verb tense
- Add clipboard copy functionality so that tapping a cell in the table would copy the conjugation to the user’s clipboard
Testing & Finalization (Weeks 7-9)
- Cross-platform testing and bug fixes
- Performance optimization
- UI/UX refinements
- Complete documentation
- Final submission
Past Contributions
Pull Requests:
- Refactor bottom tab bar navigation for improved modularity and maintainability- Merged
- increase app text size
- The PR improved the styling of quick tutorial and install keyboard buttons. - Merged
- The PR increased the vertical spacing between key rows of the scribe keyboard, aligning their style with Scribe-iOS.. - Merged
- The PR adds spacing between the scribe key and translate key. - Merged
- The PR adds doc comments to all the functions and classes in the helpers directory. - Merged
- The PR integrates Detekt and Ktlint rules related to KDoc (Kotlin docstrings) into the project to enforce consistent documentation standards across the codebase. - Merged
- The PR added width to tooltips box - Merged
- The PR introduces unit tests for the utility functions in the SettingsUtil class. - Merged
- The PR fixes dangling top-level KDoc comments. - Merged
- The PR fixes dangling top-level KDoc comments. - Merged
Biographical Information
Relevant Experience
Experienced full-stack Mobile & Web Developer who specializes in Android and web technology. Integrated more than 16 pull requests into several production apps with changes that include new features and entire splash screen implementations. Experienced in Kotlin, Java, JavaScript, React. Well-versed with MVVM, component based solutions, web development. Passionate about maintaining high quality code with unit and UI tests, clean code documentation, and static analysis tools. Adept at developing beautiful and functional cross-platform applications with robust back-end logic.
Availability
I am available to work on weekdays. I have volunteering commitments on Thursdays from 2:00 pm to 6:00 pm, Saturdays and Sundays. I am willing to adjust my schedule to accommodate any urgent or important project needs, and I will communicate any changes to my availability in a timely manner.
I have drafted a detailed GSoC proposal for this task, including implementation plan, timelines, and technical approach.
I’d really appreciate any feedback from mentors.
Proposal