haiku's People
haiku's Issues
Consider "correction mode"
As our syllable counting service isn't perfect, the user may want to adjust the number of syllables manually, assuming they're using/writing words for which we're not counting the syllables properly (or at all).
This feature could be enabled from the Settings screen or through a button in the app bar. Upon being enabled, two extra buttons on each text field, next to the counter, are displayed: one to increase the syllable count for that line, the other to decrease it:
[ + ]
primeira linha 5
------------------ [ - ]
[Android] State flows
Gradle Kotlin script
Rework Priberam scraping to support no syllable count
Priberam has recently gone through a redesign which broke our parsing/scraping. Even though this was quickly fixed it seems that certain words are not provided with a syllable count. This is not about suffixed/prefixed words but rather words that seem to be a singly syllable only - e.g. bom, dar, mar, etc.
For such cases it's likely safe to assume the syllable count is 1 as the "not found" elements are not present either.
List screen
Pytest
Add unit tests to the server, using Pytest.
Deal with preffixes/suffixes
When querying for certain words Priberam returns, as the first result, suffixes and prefixes - e.g. "ola" (instead of "olá") is considered a suffix. We should parse through the results in a meaningful way, ignoring prefixes and suffixes.
Fix security issues with dependencies
Fix issues reported by dependabot here.
Static analysis
Support for other languages
Consider supporting other languages (namely English). This would require a new endpoint or a new parameter when requesting the syllable count to the backend. It would also require a setting in the app to change the language in which the user is writing in.
[Android] Loading animation
[Android] Debug variant
Automated build pipeline
[Android] Display network/request errors
Currently, we don't do anything if there is an error when hitting the server. We should display it to the user and provide a way for them to retry. Ideally, we'd
- show some sort of snack bar with an error message;
- display a button in the snackbar to retry.
Reload app on local changes
Add Share feature (Writing Screen)
Add a Share feature to the app, on the writing screen, allowing you to share whatever is currently written.
TBD: How does share work? The first iteration could be sharing only text, but a second iteration could generate a nice image (with contrasting background and foreground colors).
[BE] Cache words
Database (Room)
This includes saving poems locally but only refers to the actual local DB, not to surfacing this data on the UI.
Bottom navigation
[Android] Unit tests
Write screen
Rework requirements.txt workflow
We're currently locking dependencies into requirements_lock.txt which is not used. We should probably be locking those into requirements.txt from some other txt file. As an alternative consider using pip-tools.
Basic project documentation
Write basic project documentation, covering:
- backend architecture;
- backend infrastructure;
- mobile app architecture.
Refactor Compose dependencies to use BOM
Read more about this here.
Parse text to remove commas, etc.
Add support for new endpoint
This new endpoint seems to be a bit more comprehensive - e.g. it has the correct results for words like "testinho", whereas Priberam interprets it as "test".
curl 'https://www.separarensilabas.com/index-pt.php' -X POST -H 'User-Agent: Mozilla' -H 'Content-Type: application/x-www-form-urlencoded' --data-raw 'fs=testar&cs=on'
CI/CD pipeline
Migrate to Deta Spaces
Deta Micros are now deprecated and will be killed off next month (early June 2023). We need to migrate to their new offering, Deta Spaces (or migrate away entirely from Deta).
See:
Consider starting a new Space instead of migrating the current micro. That is, the code should stay roughly the same but the Deta project will be new.
Convert to fragment
Convert the main screen to a fragment. This is so that we can later add more and use the navigation component. We'll still be using Compose with fragments as the host.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.