Skip to content
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

Online Account Sync #55

Open
0xpr03 opened this issue May 2, 2021 · 13 comments
Open

Online Account Sync #55

0xpr03 opened this issue May 2, 2021 · 13 comments
Labels
Milestone

Comments

@0xpr03
Copy link
Owner

0xpr03 commented May 2, 2021

I'm evaluating whether to implement an online account feature (self-hostable) where you can upload your lists and thus edit them on your PC in your browser. This eliminates the import/export busywork completely. Import and Export won't ever be removed, but editing or creating new vocable lists from your PC should be much faster and easier for non tech-savvy folks.

@0xpr03 0xpr03 added the feature label May 2, 2021
@0xpr03 0xpr03 added this to the 0.8 milestone May 2, 2021
@0xpr03 0xpr03 mentioned this issue Sep 30, 2021
19 tasks
@rizhenkov
Copy link

Hi, I can help you with this feature if you interested (as volunteer, of course).
I'm expirienced in JS and PHP. Just need to imagine and describe workflow.

@0xpr03
Copy link
Owner Author

0xpr03 commented Dec 27, 2021

Thanks for the offer. I am in fact working on a backend currently, written in rust and have no specific plan yet for how the frontend will look like, so that's one way to get involved. I do have a plan what I want to do for password-optional login, multi-device support & offline capable synchronization.

@rizhenkov
Copy link

@0xpr03 What you think about something like this?

image

Figma: https://www.figma.com/file/Zcmv1m6jZtdT3GFFPulQsO/VocableTrainer-Web?node-id=0%3A1

@0xpr03
Copy link
Owner Author

0xpr03 commented Dec 28, 2021

ping @mawoka-myblock you also did want to get involved with the frontend

@0xpr03
Copy link
Owner Author

0xpr03 commented Dec 28, 2021

@0xpr03 What you think about something like this?
Figma: https://www.figma.com/file/Zcmv1m6jZtdT3GFFPulQsO/VocableTrainer-Web?node-id=0%3A1

Looks good, you'll probably hit a problem with multiple meanings. Which is one reason I'll probably move away from a clear table layout in the app (see #71 ). Though there is more space on a desktop, so my vertical idea is not the best solution here.

@rizhenkov
Copy link

@0xpr03 understand you about multiple meanings. But this UX regarded strongly from the main app idea:

  1. training with new words
  2. storing dictionary

In the 1st case, the multiple meanings is not so important (i think). It may be realized with some delimiter symbol.
While 2nd case requires two-level workflow for each row.

@0xpr03
Copy link
Owner Author

0xpr03 commented Dec 28, 2021

training with new words

Ah so you intend to implement the trainer too ? Because the easiest thing for that would be to mirror the complete app as a web application, implementing everything based on webstorage and then using the official app sync protocol. So no live fetching of data.

storing dictionary

That was my first reason for a web view.

@rizhenkov
Copy link

No, I talking about the main android app purpose: vocabulary trainer or dictionary notebook.

If it is a trainer - there is not so important to use "Multi meanings". Because, when human learning foreign language, he define the main meaning of word for himself and trying to remember this. Other meanings are learned later as "second layer" of knowleges.

@mawoka-myblock
Copy link

@rizhenkov I wouldn't use php for the frontend, I'd just use a frontend-lib, like svelte.

@0xpr03
Copy link
Owner Author

0xpr03 commented Dec 28, 2021

If it is a trainer - there is not so important to use "Multi meanings". Because, when human learning foreign language, he define the main meaning of word for himself and trying to remember this. Other meanings are learned later as "second layer" of knowleges.

That may be the case but we support adding multiple meanings explicitly, so that should be supported in the web view.

@0xpr03
Copy link
Owner Author

0xpr03 commented Dec 28, 2021

Also don't forget that some people use this for other stuff than learning vocabulary. Like remembering definitions, so that's totally fine.

@rizhenkov
Copy link

@mawoka-myblock Of course, because the PHP - is the backend-only language.

@0xpr03 ok, I will update mockup soon and will propose the UX to workaround

@0xpr03
Copy link
Owner Author

0xpr03 commented Mar 6, 2022

To give a little sign of life I made the planned backend public.

There is a public API intended for browsers/webpages inside src/lists/ and src/users. I intend to add API documentation sooner or later. For now this can be used to get an idea how things could work and how an SPA can be made around that.

The primary design goals for this backend are:

  • do not require user input for merging changes
  • do not require any email or password for login*
  • do not require clients to be online when editing their data
  • allow multiple users to share a list with each other
  • allow easy self hosting

It's in https://github.com/0xpr03/vta_backend

* the required QR-Scanning login mechanism is still missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants