Open AustinGrey opened 3 years ago
This issue will necessarily depend on #8 since that issue is currently being pulled into uipstream master with the na-vue-experiments branch
+1 for mobile support being a necessary part of the UI - at least for the diary portion of the app. When I'm cooking or eating, it would be much more convenient to record data using a smartphone rather than typing into a desktop.
I got your Vue app up and running on my machine and I like how you can edit and view the data in a single view using it; this is much more usable than having the awkward Django /adminbackend split currently on the main branch.
I don't have much experience with Vue, but as you work on the mobile support I will try it out and can provide UI feedback/testing...it's of course better to keep this as a web app than a native smartphone app, especially since you probably want to be able to access the database from multiple devices.
@dceliano At this point in the process broad feedback is welcome. I'm glad to hear you got it up and running. To be frank I wasn't sure how many if any people are using this app aside from Dylan and I personally am more diligent programming than I am logging my own nutrition through the app so feedback from more users at this stage could really change the course of the interface. Thanks for reaching out.
The plan is to keep everything in a webapp - that way the server can provide the app and the database if people want, and it's not difficult to use electron to target native applications.
Here is the result of some experiments with condensing information:
Notes from what I've learned:
An improved look, using information condensing outlined in previous post, but with float labels that have had the labels popped out on top.
I have some feedback from testing this on an actual smartphone vs. in the browser like your videos show. I set up an instance for testing at mail.domcc3.com:8000/frontend (entirely insecure, but only for testing) - feel free to browse to it to test things on your phone yourself. I will keep it up to date with your commits as best as possible.
Thanks dceliano.
Regarding no. 4, the issue is not specific to my phone; you can use the Chromium developer tools' device toolbar to choose "Samsung Galaxy S5" and you will have the same behavior. It is like that on "Moto G4" and a few other models as well.
An idea for the diary page is to have a table with rows - one row per day - which shows a summary of that day's statistics. If you want to expand the details of a specific day, you can click the row and the individual entries will show up. Click the row again, and they will go away. The columns will be quite narrow since there are about 6 columns, but the values should still be visible on a smartphone. And then to add a new diary item, just put a "+" on one of the corners of the page.
Also, now that I've been using Django a bit more, the idea of "Save Copy" makes a more sense; Django calls it "Save as New" in their backend. A more intuitive word might be "Duplicate" or something of the sort.
@dceliano I'm not sure I follow the proposed design for the diary page:
What I'm working toward now would look like:
The devils in the details so I might hit a snag, but this seems to be the most workable solution to hit all the goals I mentioned last month.
Here is a preview of the work done on a more mobile friendly version of the diary. Instead of using ag-grid, I just have a list that appears on search. And the form for adding a new entry appears as part of the rows listed for the interval.
It's ugly, but the functionality is much more intuitive, you don't need to think about recipes or ingredients. This required writing a completely custom View in django to merge the two models while still allowing sort/search. I can certainly improve the look on the front end though. You could image that for portrait mobile screens, we stack the stats on the top of the page with a maximum height, and then have the interval on the bottom as thats closer to the thumbs for interaction.
Yes, I agree this diary view is more intuitive and looks better than the old one. I especially like the date picker on the top of the screen (or on the bottom) allowing you to easily go forward/backward days and the fact that there is a summary view for each day. 2 ideas come to mind upon using it: 1.) add a cancel button for if the user clicks the "+" button then changes their mind and wants to go back quickly 2.) Allow a user to click a diary entry and view more details about that entry and edit the entry.
There are still ways to make improve this design (make sure you test changes with multiple mobile devices in the Chrome developer tools), but I think this is a good step forward.
On another note, I get the following backend error:
File "./pants/recipes/serializers.py", line 128, in
I think you can fix it by making the following change on line 134: def init(self, querysets: list[QuerySet]): to def init(self, querysets):
I'm not sure what you were intending to do there, but if you ever need to convert a queryset to a Python list, I've found the syntax list(queryset.values())
is an easy way to do it.
The experiments with Vue and a dedicated front end proved successful. The results showed improved usability. The next barrier is that of platform lock. Right now this frontend is very desktop centric, but it is likely that logging from a mobile device would be much more convenient than needing a complete desktop setup. The interface should be changed to either be a mobile friendly layout for both desktop and mobile, or completely different for the different platforms.
Current Challenges: