-
-
Notifications
You must be signed in to change notification settings - Fork 806
Add 2025 Curtin Capstone End of Semester Blog Post #639
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
freakboy3742
merged 16 commits into
beeware:lektor
from
kavi2du:curtin-capstone-blogpost
Jun 13, 2025
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
bf25e9b
Add 2025 Curtin Capstone end of semester blog post draft
kavi2du 4c4a70d
Address review comments
kavi2du 5aa59f9
Fixed some typos and grammar
mEp3ii2 45295ef
Update contents.lr
vt37 ab9536e
Added new PR to Web Widgets
vt37 631a7b4
Update to Web dev optimisations section
mEp3ii2 faf6b6b
Update content/news/buzz/2025-curtin-capstone-semester-end-blog/conte…
mEp3ii2 62d71b4
Update content/news/buzz/2025-curtin-capstone-semester-end-blog/conte…
mEp3ii2 6193f99
Update content/news/buzz/2025-curtin-capstone-semester-end-blog/conte…
mEp3ii2 56c3d89
Update content/news/buzz/2025-curtin-capstone-semester-end-blog/conte…
mEp3ii2 89cac58
Address review comments
kavi2du b41d23c
Updated the pyscript deliverable issue ticket link
kavi2du fdc851a
Updated wording
mEp3ii2 9f665fd
Minor markup tweak.
freakboy3742 a7aeeae
Update 'Toga Web Testing' section.lr
Stringer90 5d480a7
Cleanup the cleanups
freakboy3742 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
86 changes: 86 additions & 0 deletions
86
content/news/buzz/2025-curtin-capstone-semester-end-blog/contents.lr
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
title: 2025 Curtin University Capstone Project | ||
--- | ||
author: Curtin Capstone Team | ||
--- | ||
body: | ||
|
||
Over the past semester, a team of final year students from [Curtin University](https://www.curtin.edu.au) has been collaborating with the BeeWare Project as part of a capstone project for their degrees. Here's a summary of what they've done so far this semester, and what they have planned for the rest of the year. | ||
|
||
## Curtin Capstone | ||
|
||
Capstone is the final year project undertaken by students across all computing disciplines at Curtin University, including Computer Science, Software Engineering, Cyber Security, and Information Technology. It allows students the opportunity to work in teams on real-world projects in collaboration with industry partners, gaining practical experience and professional exposure before graduating. | ||
|
||
This year our team has had the exciting opportunity to contribute to BeeWare for our Capstone project. | ||
|
||
Meet the Team: | ||
|
||
- Kavidu Abeykoon Mudiyanselagedara ([kavi2du](https://github.com/kavi2du)); Information Technology | ||
- Callum Horton ([Stringer90](https://github.com/Stringer90)); Software Engineering | ||
- Caydn Lee ([caydnn](https://github.com/caydnn)); Software Engineering | ||
- Jaeden Mah ([JMah007](https://github.com/JMah007)); Computer Science | ||
- Mitchell Pontague ([mEp3ii2](https://github.com/mEp3ii2)); Software Engineering | ||
- Veronica Taniputra ([vt37](https://github.com/vt37)); Cyber Security | ||
|
||
## What We’ve Worked On | ||
|
||
This year, our primary focus has been on improving Toga’s Web backend and enhancing Briefcase’s support for that backend. | ||
|
||
Throughout the first semester, our team has been focused on contributing to issues on Briefcase and Toga while working on our research to prepare for what is to come in the following semester. We’ve also worked on implementing several of the Toga Web widgets to enhance functionality on the web backend before working on the web test suite for next semester. | ||
|
||
We were first tasked with contributing to a first timer issue before moving on to other more advanced issues. | ||
|
||
### Briefcase Contributions | ||
|
||
- PR [#2198](https://github.com/beeware/briefcase/pull/2198): Add boolean question (feature) | ||
- PR [#2103](https://github.com/beeware/briefcase/pull/2203): Add XML content escaping filter to cookiecutter.py (feature) | ||
- PR [#2199](https://github.com/beeware/briefcase/pull/2199): Add catch exception when deleting JDK (bugfix) | ||
- PR [#2229](https://github.com/beeware/briefcase/pull/2229): Accept other changelog name and extension (feature) | ||
- PR [#2201](https://github.com/beeware/briefcase/pull/2201): Add ``--app`` option to briefcase build/package (feature) | ||
- PR [#2214](https://github.com/beeware/briefcase/pull/2214): Add ``--app`` option to briefcase create/update (feature) | ||
- PR [#2236](https://github.com/beeware/briefcase/pull/2236): Normalise contribution docs with Toga (documentation) | ||
- PR [#54](https://github.com/beeware/briefcase-windows-VisualStudio-template/pull/54): Use XML content escaping filter to Visual Studio template. (bugfix) (work in progress) | ||
|
||
### Toga Contributions | ||
|
||
- PR [#3259](https://github.com/beeware/toga/pull/3259): Add web screenshots (documentation) | ||
- PR [#3466](https://github.com/beeware/toga/pull/3466): Fix button click handling in Toga Web backend to correctly trigger event (bugfix) | ||
- PR [#3338](https://github.com/beeware/toga/pull/3338): DateInput (web widget) | ||
- PR [#3405](https://github.com/beeware/toga/pull/3405): TimeInput (web widget) | ||
- PR [#3362](https://github.com/beeware/toga/pull/3362): ScrollContainer (web widget) | ||
- PR [#3425](https://github.com/beeware/toga/pull/3425): Table (web widget) (work in progress) | ||
- PR [#3402](https://github.com/beeware/toga/pull/3402): Selection (web widget) | ||
- PR [#3527](https://github.com/beeware/toga/pull/3527): Slider (web widget) | ||
|
||
## What We're Working Towards | ||
|
||
Now that we’re more familiar with the BeeWare ecosystem, through both our initial PRs and widget implementations, and having concluded our Semester 1 research phase, we’re shifting our focus to larger, more structural improvements for the second half of the project. | ||
|
||
Our primary goals moving forward include: | ||
|
||
### Toga Web Testing | ||
kavi2du marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Toga does not currently support testing for the web platform as the test suite and testbed app run multithreaded in the same process. The web platform is incompatible with this as WebAssembly does not support multithreading. To address this, we are working on developing a general approach that allows the test suite and testbed app to run in separate processes. This will include using proxy objects in place of Toga objects in the test suite that will wrap the respective object in the testbed app, forwarding commands to it in order to change its state and retrieve data. | ||
|
||
Additionally, to verify the rendered state of the testbed app, we plan to use Playwright to inspect the browser's DOM and compare it against what the test suite expects. This setup should allow the web platform to be effectively tested while still using the existing test suite. | ||
|
||
More technical details and discussion can be found in our [Discussion Post](https://github.com/beeware/toga/discussions/3440) on Toga and the associated [Issue Ticket](https://github.com/beeware/toga/issues/3545). | ||
|
||
### PyScript Briefcase and Toga Dependencies | ||
|
||
During Mitchell’s development of the DateInput Web Widget, we discovered some issues resulting from how PyScript APIs were being used. This issue was resolved separately but sparked broader discussions about the ownership of PyScript, Shoelace, and Bootstrap within the wider BeeWare architecture. Currently, the Briefcase web template includes these directly in ``index.html``, but they should ideally be managed as dependencies of Toga. | ||
|
||
We’re proposing to shift ownership of these dependencies to Toga and other toolkits, enabling them to define their own configurations and inserts while keeping Briefcase focused purely on packaging. This would allow for clearer version control, better modularity, and easier maintenance across the ecosystem. This approach builds on prior work ([briefcase#1285](https://github.com/beeware/briefcase/pull/1285), [toga#1945](https://github.com/beeware/toga/pull/1945) and [briefcase-web-static-template#9](https://github.com/beeware/briefcase-web-static-template/pull/9)) and introduces a mechanism for toolkit-managed inserts and configuration. We plan on reviving parts of these to allow for Toga to specify PyScript versioning. | ||
|
||
More technical details and discussion can be found in our [Discussion Post](https://github.com/beeware/briefcase/discussions/2283) on Briefcase and the associated [Issue Ticket](https://github.com/beeware/briefcase/issues/2337). | ||
|
||
|
||
### Briefcase Web Development Optimisations | ||
|
||
While contributing to Toga's web widgets, we noticed that testing even small changes requires rebuilding all project wheels (with ``briefcase run web -r -u``), which can take a significant amount of time. This makes local development slow and interrupts the feedback loop needed for efficient frontend iteration. | ||
|
||
To improve this we're going to be working on extending the ``dev`` command to be platform aware and make it so ``dev web`` utilises editbale installs to serve your project to the brower making it so with simple refresh of the browser you can quickly see your changes instead of waiting for a full wheel rebuild. | ||
|
||
More technical details and discussion can be found in our [Discussion Post](https://github.com/beeware/briefcase/discussions/2282) on Briefcase and the associated [Issue Ticket](https://github.com/beeware/briefcase/issues/2334). | ||
|
||
--- | ||
pub_date: 2025-06-13 |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.