
Jargon addresses a significant barrier that immigrant tradespeople face when pursuing a Canadian Red Seal certification.
Role: Scrum Master & Full Stack Developer. Responsible for team coordination, removing blockers, and delivering a broad portion of the build.
Frontend contributions included the Rocky mascot animation that plays on document upload, the flashcard pop-up Rocky interactions, the quiz question and answer translations, and the SVG-sprite avatar system positioned through SASS to remain consistent across every page and size.
Backend contributions included the Gemini API integration for user-uploaded documents, the course data structuring and database seeding by course level, and the course-locking logic.
Jargon was developed as a gamified English-learning platform for immigrant tradespeople preparing for Canadian Red Seal certification. For new arrivals who are still expanding their English abilities, traditional language learning applications lack trade-specific vocabulary. Technical manuals can also overwhelm learners with complex terms and no contextual support.
Built as a collaboration between BCIT's Digital Design and Development (D3) program and its Full Stack Web Development (FSWD) program, the team paired design, research, and engineering skills across a single project.
To address the lack of trade-specific language support, the platform combines a structured curriculum of curated courses with a document upload flow. Learners can upload their own study materials, and the platform uses the Gemini API to extract the text and generate study content drawn from the exact materials the learner is working through. Custom quizzes generated from these documents can also be shared with friends, building a layer of community and peer support into the learning experience.
Building Jargon presented several challenges that required careful planning and iterative problem-solving:
Research began with personas representing the primary learners on the platform. These personas captured user backgrounds, motivations, and the specific barriers each user type would encounter when working toward Red Seal certification.
A complete user flow was mapped from onboarding through course selection, quiz completion, flashcard review, and document upload. The flow identified the points where gamification would drive engagement and where friction needed to be reduced.
Agile project management was adopted using Trello to organize sprints and track tasks. The Trello workspace was split into separate boards for developers and designers, allowing each group to manage their own work streams while maintaining visibility into the project as a whole. Discord was used as the primary channel for day-to-day team communication. Team meetings were held every Wednesday to plan the upcoming sprint, assign work, and review what had been completed in the previous week. Subject matter expert (SME) sessions with Emily from ConnectHer were held every two weeks to discuss technical direction and confirm that the platform remained aligned with the needs of immigrant tradespeople pursuing Red Seal certification. Team members took turns pushing code, and tasks were assigned to play to individual strengths, whether that was tackling work immediately, deep research, or refining UI details, maximizing overall output.
A dedicated Google Chrome profile was created for the project, making it straightforward for any team member to access shared platforms without juggling personal and project credentials. Platform login details and other shared references were stored across purpose-specific Discord threads, keeping information organised and easy to locate.
While the designers on the team focused on UI/UX and market research, the developers worked in parallel on structuring the curated course content, organising terms, questions, and answers into JSON files ready for seeding. Running these work streams in parallel maximised the team's use of time in the early weeks of the build.
Each team member worked on their own branch, then merged into main via pull request. No inline styles were permitted, and reusable helper functions were used wherever possible to keep the code clean and maintainable.
Clear naming conventions and a well-defined project structure were established early in development to ensure consistency across the two-repository architecture. These conventions governed everything from branch naming to database column formats.
| Type | Convention | Example |
|---|---|---|
| React pages | PascalCase, grouped by feature | ProfilePage.tsx, LearnJargon.tsx |
| Drawer pages | PascalCase + Drawer suffix | CategorySelectDrawer.tsx |
| Shared components | PascalCase | StartLearningCard.tsx |
| Hooks | camelCase with use prefix | useSmartNavigation.ts |
| Type definitions | camelCase files in types/ | podium.ts, profile.ts |
| SCSS partials | _ + kebab-case | _profile.scss |
| CSS classes | kebab-case, BEM-ish blocks | profile-page |
| Assets | kebab-case paths and filenames | learning-folders/friends.svg |
| Type | Convention | Example |
|---|---|---|
| Controllers | camelCase + Controller suffix | questionController.ts |
| Services | camelCase + Service suffix | userService.ts |
| Routes | camelCase + Route suffix (or plural) | friendshipRoute.ts, users.ts |
| Middleware | camelCase + Middleware suffix | authMiddleware.ts |
| Interfaces | camelCase files in interfaces/ | badgeData.ts |
| Seed scripts | camelCase verb + Seeder / action | runPrebuiltSeeder.ts |
| Workers | camelCase + Worker suffix | documentWorker.ts |
| Entry files | lowercase or camelCase | app.ts |
The project consists of two sub-repositories, each responsible for a distinct layer of the application.
frontend/src/ ├── assets/ # Assets for UI ├── components/ # Reusable components ├── contexts/ # NotificationContext and other app-wide context ├── hooks/ # Custom React hooks ├── lib/ # API connections and client utilities ├── mounting/ # Entry mounts for pages ├── pages/ # Route-level pages ├── styles/ # SCSS styling ├── types/ # All TypeScript type definitions └── utils/ # Language, community, color utilities
frontend/src/ ├── assets/ ├── components/ ├── contexts/ ├── hooks/ ├── lib/ ├── mounting/ ├── pages/ ├── styles/ ├── types/ └── utils/
backend/
├── prisma/ # Database schema and migrations
├── scripts/ # Database migration scripts
└── src/ # All source code
├── controllers/ # Shared controllers
├── interfaces/ # TypeScript interfaces
├── lib/ # Backend connections and helpers
├── middleware/ # Auth, cache, user-context middleware
├── routes/ # Shared routes
├── seeds/ # Database seeding
├── services/ # Notification, user, and domain logic
└── workers/ # Background workers (e.g. documentWorker.ts)backend/
├── prisma/
├── scripts/
└── src/
├── controllers/
├── interfaces/
├── lib/
├── middleware/
├── routes/
├── seeds/
├── services/
└── workers/jargon-terms/ ├── carpenter/ # Carpenter terms and questions seed files ├── electrician/ # Electrician terms and questions seed files ├── general/ # General terms and questions seed files ├── mechanic/ # Mechanic terms and questions seed files ├── plumber/ # Plumber terms and questions seed files └── welder/ # Welder terms and questions seed files
jargon-terms/ ├── carpenter/ ├── electrician/ ├── general/ ├── mechanic/ ├── plumber/ └── welder/
Figma was used to prototype the full product ahead of development, establishing the visual language, navigation structure, and component patterns that would be carried into the build. The implementation stayed close to the prototype, with adjustments emerging through development, particularly around the avatar system and the Rocky mascot animations.
The designers led the UI/UX work, with input from the developers throughout to confirm each design could realistically be implemented within the 15-week project window.
Development spanned animation, data pipelines, AI integration, and precisely positioned SCSS. Several areas of the build are worth noting:
Testing focused primarily on language accuracy, which was the highest-risk area given the volume of translated content. Emily, the project's subject matter expert and a French speaker, worked through the platform regularly and flagged translations that did not read correctly or failed to convey the original meaning. Ahead of launch, friends of the team were also asked to test the platform, with an emphasis on confirming translations in their own languages and surfacing anything that felt off.
Testing also surfaced friction in the sharing flow. To address this, a QR code was added to the leaderboard so learners could connect with friends and exchange custom quizzes more directly, reinforcing the community element of the platform.
Jargon was showcased at the Student Design and Technology Showcase on 5 December 2025, held at Telus Theatre on BCIT's Burnaby campus. The team ran a booth that walked attendees through the platform, demonstrating the courses, quizzes, and document upload flow. Each team member wore a custom t-shirt printed with their own Jargon avatar, carrying the gamification aesthetic from the app into the event itself.
The completed Jargon platform delivers a gamified learning experience designed specifically for immigrant tradespeople working toward Red Seal certification. Key outcomes include:
The project culminated in a live presentation to an audience of 500 people during the showcase. The team demonstrated an interactive avatar that was saved and submitted live in front of the audience, and the booth was attended by the Mayor of Burnaby alongside other guests.