laboiteproject/lenuage

App folders, architecture and organisation

Closed this issue · 7 comments

Following @vrialland's comment, here are a few ideas in no particular order:

1/ move all the app_* folders in an apps subfolder to prevent clutter
2/ categorize the apps, using a taxonomy, eg: Transportation > Bike
3/ organize apps by location (eg Rennes, Paris...), and then display all the APIs/Providers available for such location (time, weather, STAR...)
4/ organize apps by APIs/Providers (eg STAR, Velib, ratp...), and then display all the data available for such APIs/Providers (bus, tram, bike, subway...)
5/ tag applications in a very loose manner (eg "star rennes bus"), and have a full text search that can list the applications that might be interesting for a given subject

Maybe writing user stories might help to find other ideas? Example of a user story:

  • As a new user of "la boite", I am presented with a list of relevant apps when I connect to the admin and it detects my geolocation
  • As a user of the "la boite" configuration page, I can order the list of applications by popularity (number of users)
  • As a user of the "la boite" configuration page, I can order the list of applications by freshness (newest apps listed first)
  • As a user of the "la boite" configuration page, I can filter the list of applications by display size
  • As a user of the "la boite" configuration page, I can filter the list of applications by feature (eg if we have some "la boite" that have buttons, buzzers, nelson integration... in the future)
  • ...

Any other ideas @vrialland @jlebunetel @Pimouss1305 @flaghost?

@bgaultier thoughts?

My additions:

  1. Totally agree, perhaps adding some kind of namespace "laboite.apps" with entrypoints or something so people could distribute packaged apps and easily add them in INSTALLED_APPS?
  2. Maybe a subset of 1. ie adding subpackages in "laboite.apps": "laboite.apps.transportation.bike", "laboite.apps.date.clock"?
  3. Maybe there should be a higher level object that communicates with a provider (and can do caching for some infos) and then is used by several apps, for example Star in Rennes can provide data for buses, bikes, subways... and then apps for each one. It would prevent code duplication.

About user stories, Github issues may not be the right place, maybe we should use a project management app such as Taiga or other?

Also, it could be nice to create a Github organization "laboite" to regroup all related repos and where we would be members so we can work on branches instead of personal forks (seems to be free for public repositories).

Hey guys,
Good ideas really !
Both approaches sounds ok to me but we'll need to discuss them to keep one.
Regarding the laboite organization, seems the username is already taken...

ABout user stories, I'm not exactly familiar to them so we'll need your experience to choose a tool to track them.

The "tool" could be as simple as listing them (using comments?) in a github issue. Or even create an issue for each and every user story, and tag/label them so it's easier to manage them?

Yep ! Thanks to markdown enabled in Github issues, it could provide siplicity and flexibility.
Let's keep it simple for now 👍

It seems like GitHub is integrating Kanban boards, advanced reviews... https://github.com/blog/2256-a-whole-new-github-universe-announcing-new-tools-forums-and-features
So we shouldn't need another tool

I checked organization name, a user with no repos nor contribution already has the name -_- But laboitepro or la-boite is free :)

Will be splitted in several issues / tasks