# Focus: A Solid Task Manager

**URL:** <https://forum.solidproject.org/t/focus-a-solid-task-manager/1022>\
**Category:** Solid App Development FAQs\
**Created:** [January 9, 2019, 6:53am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022 "2019-01-09T06:53:54Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![NoelDeMartin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/noeldemartin/32/3144_2.png) [@NoelDeMartin](https://forum.solidproject.org/u/NoelDeMartin)\
**Post date:** [January 9, 2019, 6:53am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/1 "2019-01-09T06:53:54Z")

</div>

Hi there,

I just completed a first version of a Vue-powered task manager using Solid, I’d welcome some feedback :).

> **[NoelDeMartin/solid-focus](https://github.com/noeldemartin/solid-focus)**
>
> Solid Task Manager. Contribute to NoelDeMartin/solid-focus development by creating an account on GitHub.

I plan to add more features in the future, but the thing I’m not too convinced about is the RDF types I used. I’m also wondering if it’s a good idea to combine multiple ontologies to increase compatibility with other apps.

If you want to dive into the source code, you can find the Solid integration in this two files (besides the login):

- [src/utils/Solid.ts](https://github.com/NoelDeMartin/solid-focus/blob/master/src/utils/Solid.ts)
- [src/services/backends/SolidBackend.ts](https://github.com/NoelDeMartin/solid-focus/blob/master/src/services/backends/SolidBackend.ts)

---

<div class="post-metadata">

**Author:** ![pheyvaer](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/pheyvaer/32/635_2.png) [@pheyvaer](https://forum.solidproject.org/u/pheyvaer)\
**Post date:** [January 9, 2019, 7:05am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/2 "2019-01-09T07:05:35Z")

</div>

When creating a new workspace I’m not able to select a storage. Where are you getting this information from? Are you relying on `pim:storage`?

---

<div class="post-metadata">

**Author:** ![NoelDeMartin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/noeldemartin/32/3144_2.png) [@NoelDeMartin](https://forum.solidproject.org/u/NoelDeMartin)\
**Post date:** [January 9, 2019, 7:36am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/3 "2019-01-09T07:36:35Z")

</div>

Actually this is one of the doubts I had when I started working on the app. The example application I used to learn Solid had this choice of storage, but I didn’t understand what it was, since I only had one and it seemed to be the root of my pod. If you look into src/utils/Solid.ts there is a function that parses the user and gets the storages from the type you mention, I’m implicitly using the first item from that array. So it’d be really easy to add a select in the form.

I read LDP specifications and as I understood if you want to create a container, you can do it just in the root. I’ve already tested that using the same name creates unique urls anyways, so there shouldn’t be a problem with collisions with other apps.

When would a user have more than one storage, and what are them? Can you point me to documentation on the topic?

---

<div class="post-metadata">

**Author:** ![dredd](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/dredd/32/375_2.png) [@dredd](https://forum.solidproject.org/u/dredd)\
**Post date:** [January 9, 2019, 8:17am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/4 "2019-01-09T08:17:13Z")

</div>

Hi, works well. I completed a task and it auto hide which is fine. I guess a red [x] to allow deleting a completed task would be nice too. Anyway nicely done Noel~!

Some apps suggest “default” pods which are generally; [user].solid.community, [user].solidtest.space, and [user].inrupt.net, but i think it’s more a convenience.

Typing the location is fine as our browsers often remember the form inputs second time round. (on this app that seems disabled - a security feature perhaps). Logging out and entering another Pod cleared the workspace, and returning to the first Pod recovered the workspace fine here as well.

---

<div class="post-metadata">

**Author:** ![NoelDeMartin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/noeldemartin/32/3144_2.png) [@NoelDeMartin](https://forum.solidproject.org/u/NoelDeMartin)\
**Post date:** [January 9, 2019, 8:39am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/5 "2019-01-09T08:39:30Z")

</div>

> [@dredd](#):
>
> I guess a red [x] to allow deleting a completed task would be nice too. Anyway nicely done Noel~!

Yeah, I still have to add a lot of features, that is one of them :D.

> [@dredd](#):
>
> Some apps suggest “default” pods which are generally; [user].solid.community, [user].solidtest.space, and [user].inrupt.net, but i think it’s more a convenience.

Actually I removed it on purpose (the `solid-auth-client` library already does that using the modal login). I don’t like the fact that some platforms are given more visibility. Although I can agree that it can be easier for users, so I’ll keep that in mind for the future to find a better approach.

> [@dredd](#):
>
> Typing the location is fine as our browsers often remember the form inputs second time round. (on this app that seems disabled - a security feature perhaps).

I haven’t done anything special for that, it’s just that being a JS application I’m not using a “name” attribute for the form input. Maybe it’d be a good idea to have one so that it remembers previous inputs as you mention.

---

<div class="post-metadata">

**Author:** ![aveltens](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/aveltens/32/3987_2.png) [@aveltens](https://forum.solidproject.org/u/aveltens)\
**Post date:** [January 9, 2019, 8:52am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/6 "2019-01-09T08:52:40Z")

</div>

Thanks @NoelDeMartin, this is a great app, both to show what can be done with solid and to actually use. I am happy to see it developing further.

---

<div class="post-metadata">

**Author:** ![pheyvaer](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/pheyvaer/32/635_2.png) [@pheyvaer](https://forum.solidproject.org/u/pheyvaer)\
**Post date:** [January 9, 2019, 9:32am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/7 "2019-01-09T09:32:55Z")

</div>

> [@NoelDeMartin](#):
>
> When would a user have more than one storage, and what are them? Can you point me to documentation on the topic?

You could have a look at [this thread](http://forum.solidproject.org/t/storage-of-application-specific-settings/532) I started earlier.

---

<div class="post-metadata">

**Author:** ![eduardoinnorway](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/eduardoinnorway/32/254_2.png) [@eduardoinnorway](https://forum.solidproject.org/u/eduardoinnorway)\
**Post date:** [January 9, 2019, 9:53pm UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/8 "2019-01-09T21:53:46Z")

</div>

Awesome work, I have just some UX pointers if you are interested to hear them, PM me on Gitter or LinkedIn.

---

<div class="post-metadata">

**Author:** ![jeffz](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jeffz/32/600_2.png) [@jeffz](https://forum.solidproject.org/u/jeffz)\
**Post date:** [January 9, 2019, 10:48pm UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/9 "2019-01-09T22:48:52Z")

</div>

Great app, @NoelDeMartin, very nice work! I think starting with the Schema types, as you have is good - likely to be widely recognized. As you add more features, you’ll need to look at more specific ontologies likes calendars and events.

---

<div class="post-metadata">

**Author:** ![kidehen](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/kidehen/32/42_2.png) [@kidehen](https://forum.solidproject.org/u/kidehen)\
**Post date:** [January 10, 2019, 1:17am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/10 "2019-01-10T01:17:12Z")

</div>

Nice app!

Question, can I save tasks to my Pod?

A key pattern with Solid-based RWW apps is that the WebID-Profile doc of an authenticated User Identity should inform said app about about Data Storage location. Here are some WebID-Profile doc relations that are currently associated with this pattern, via my [WebID-Profile doc](https://kidehen3.solid.openlinksw.com:8444/profile/card):

- [pim:storage](http://www.w3.org/ns/pim/space#storage)
- [ldp:inbox](http://www.w3.org/ns/ldp#inbox)
- [as:outbox](http://www.w3.org/ns/activitystreams#outbox)

---

<div class="post-metadata">

**Author:** ![NoelDeMartin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/noeldemartin/32/3144_2.png) [@NoelDeMartin](https://forum.solidproject.org/u/NoelDeMartin)\
**Post date:** [January 10, 2019, 7:27am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/11 "2019-01-10T07:27:44Z")

</div>

> [@kidehen](#):
>
> Question, can I save tasks to my Pod?

As far as I understand, as long as you login with a solid account (instead of using the offline mode), tasks will be stored on your pod, right? My understanding of “pod” is the solid server. For example, one account in solid.community.

> [@kidehen](#):
>
> A key pattern with Solid-based RWW apps is that the WebID-Profile doc of an authenticated User Identity should inform said app about about Data Storage location. Here are some WebID-Profile doc relations that are currently associated with this pattern, via my [WebID-Profile doc](https://kidehen3.solid.openlinksw.com:8444/profile/card):

This is something I don’t know about and I think it may be related with what @pheyvaer was talking about. I’ll look into it and if I’ve got some doubts I’ll let you know. Thanks for the links 🙂

---

<div class="post-metadata">

**Author:** ![aveltens](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/aveltens/32/3987_2.png) [@aveltens](https://forum.solidproject.org/u/aveltens)\
**Post date:** [January 10, 2019, 7:37am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/12 "2019-01-10T07:37:51Z")

</div>

> [@NoelDeMartin](#):
>
> As far as I understand, as long as you login with a solid account (instead of using the offline mode), tasks will be stored on your pod, right?

Yes, this works fine. When creating a workspace, it shows my storage `https://angelo-v.solid.community` and then I can choose a name for it. I can then find the data at `https://angelo-v.solid.community/<name>/`

---

<div class="post-metadata">

**Author:** ![kidehen](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/kidehen/32/42_2.png) [@kidehen](https://forum.solidproject.org/u/kidehen)\
**Post date:** [January 14, 2019, 4:14am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/13 "2019-01-14T04:14:08Z")

</div>

When I am logged in I should be able to see my WebID as a hyperlink that anchors my literal label.

The pattern for this is `<a href="{webid}">{object-of-foaf-name-relation}</a>`.

In addition, it would be beneficial to inform the user about default storage via pattern:

`<a href="{webid}">{object-of-foaf-name-relation}</a> default <a href="{object-of-pim-storage-relation-or-ldp-inbox-etc}"> storage </a> .`

---

<div class="post-metadata">

**Author:** ![NoelDeMartin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/noeldemartin/32/3144_2.png) [@NoelDeMartin](https://forum.solidproject.org/u/NoelDeMartin)\
**Post date:** [January 14, 2019, 6:53am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/14 "2019-01-14T06:53:31Z")

</div>

> [@kidehen](#):
>
> When I am logged in I should be able to see by WebID as a hyperlink that anchors my literal label.

Can you elaborate what’s the benefit of doing that?

About the storage, I still have to read a couple of links that have been posted on this thread to learn what storages are. Once I know them, I’ll see how to approach your suggestion :).

---

<div class="post-metadata">

**Author:** ![kidehen](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/kidehen/32/42_2.png) [@kidehen](https://forum.solidproject.org/u/kidehen)\
**Post date:** [January 14, 2019, 10:15pm UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/15 "2019-01-14T22:15:40Z")

</div>

> [@NoelDeMartin](#):
>
> Can you elaborate what’s the benefit of doing that?

It takes one mouse-click or a mouseover to see what Identity your application is working with 🙂

---

<div class="post-metadata">

**Author:** ![NoelDeMartin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/noeldemartin/32/3144_2.png) [@NoelDeMartin](https://forum.solidproject.org/u/NoelDeMartin)\
**Post date:** [January 15, 2019, 6:40am UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/16 "2019-01-15T06:40:57Z")

</div>

> [@kidehen](#):
>
> It takes one mouse-click or a mouseover to see what Identity your application is working with 🙂

Shouldn’t that be seen with the name already? Unless you have the same name in different servers (which I guess is common).

The problem I see with placing the link on the name as it’s implemented now, is that it is displayed on the navigation drawer at all times. And I’m not sure if I’d want to add a link in there just for this reason. Maybe what I can do is include it on a “settings” panel or others that I plan to include at some point. Basically I agree that this information should be accessible somewhere within the app, but I’m not sure if the navigation drawer is the most appropriate place.

Thanks for your feedback, I’ll think about it and let you know once I’ve added this :).

---

<div class="post-metadata">

**Author:** ![kidehen](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/kidehen/32/42_2.png) [@kidehen](https://forum.solidproject.org/u/kidehen)\
**Post date:** [January 16, 2019, 10:23pm UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/17 "2019-01-16T22:23:35Z")

</div>

Key thing is for a WebID (an HTTP URI) to exhibit the characteristics of this kind of URI 🙂

---

<div class="post-metadata">

**Author:** ![johanbove](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/johanbove/32/23_2.png) [@johanbove](https://forum.solidproject.org/u/johanbove)\
**Post date:** [February 3, 2019, 9:48pm UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/18 "2019-02-03T21:48:33Z")

</div>

Thank you for sharing this great example and your learning experience Noel! I very much appreciate your activity log. Very useful and inspiring.

---

<div class="post-metadata">

**Author:** ![NoelDeMartin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/noeldemartin/32/3144_2.png) [@NoelDeMartin](https://forum.solidproject.org/u/NoelDeMartin)\
**Post date:** [February 4, 2019, 8:24pm UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/19 "2019-02-04T20:24:35Z")

</div>

> [@johanbove](#):
>
> Thank you for sharing this great example and your learning experience Noel! I very much appreciate your activity log. Very useful and inspiring.

Thanks! I’ll be starting the continuation shortly where I apply some of the feedback and I’ll look into a better way to handle the data models :).

---

<div class="post-metadata">

**Author:** ![JKReynolds](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.solidproject.org/jkreynolds/32/1017_2.png) [@JKReynolds](https://forum.solidproject.org/u/JKReynolds)\
**Post date:** [June 26, 2019, 12:20pm UTC](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022/20 "2019-06-26T12:20:34Z")

</div>

@NoelDeMartin great job on this app! If you’re still interested in exploring other ontologies, my team works with the Common Core Ontology. I know that we have some detailed task-related terms. If you’re interested in giving them a try, I think we could add some additional features to your app (like due dates etc). Let me know if you wanna give it a shot, we’re happy to help.

[Next page](https://forum.solidproject.org/t/focus-a-solid-task-manager/1022.md?page=2)
