wokwi-features icon indicating copy to clipboard operation
wokwi-features copied to clipboard

Organize projects into Collections

Open oomensx opened this issue 4 years ago • 14 comments
trafficstars

It would be very helpful to organize projects with the following features:

  • Create, rename, delete folders
  • Move projects to folders, out of folders
  • Having detailed information such as last opened, last edited, last added
  • Optional preview pictures (they help identify projects but I think they should be an optional view)
  • Adding tags to projects and filter for them could be useful too
  • A "Create new project" button should be part of this UI

Cheers :)

oomensx avatar Jun 04 '21 14:06 oomensx

As a first step, we now have a "Create new project" button:

image

urish avatar Jun 05 '21 08:06 urish

Right now, I'm leaning more towards "collections" instead of folders. So you could organize projects (either yours or other's public projects) into a collection, in a way similar to YouTube playlists.

I think this gives you more flexibility compared to folders:

  • You are not limited to just your projects
  • You can share your collections with others. E.g. a "Great LED Matrix Arcade Games" collection ;-)
  • A single project can live in multiple collections

Would love to hear thoughts - is this a bad idea? What advantages do classic "folders" have over collections?

urish avatar Sep 17 '21 20:09 urish

As discussed briefly with you on Discord yesterday (12th Oct 2021) I hope you'll please quickly fix what i (and others I've been in touch with) regard as a serious flaw. Namely that after changing a sketch name from the default generic 'sketch.ino' to a unique and meaningful name (e.g. 'SeveralThings2LEDs-terrypin.ino'), the name remains 'sketch.ino' when you later return to the main window.

P.S. I appreciate that you need some way to resource and prioritise feature requests, but I seriously question whether asking the many users like me that love your program to PAY to up-vote them gives you a realistic assessment of demand!

WokwiFilename

Terry

terrypin999 avatar Oct 13 '21 08:10 terrypin999

Good idea. How do you find other people's projects that are 'listed' ?

DiskDoctor avatar Dec 25 '21 03:12 DiskDoctor

This feature request has almost made it to the top of the list, so I'm starting to plan the implementation. My thoughts so far:

There will be two kinds of collections:

  1. System/global collections - e.g. Raspberry Pi Pico projects, MicroPython projects, Rust, Servo projects, FastLED projects, etc
  2. User-curated collections - See some specific thoughts in this comment.

Open questions:

  1. What should be the resolution of the system generated collections?
    I can think of at several different ways to categorize projects:

    1. By chip family (ESP32, AVR, STM32, RP2)
    2. By chip (e.g. ATMEGA2560, ATtiny85, ESP32, ESP32-S2, etc)
    3. By board (e.g. Arduino Uno, Arduino Nano, etc.)
    4. By programming language / toolchain (e.g. Arduino Core, MicroPython, CircuitPython, Rust, esp-idf, Pi Pico SDK, perhaps in the future also PlatformIO, Zephyr Project, etc.)
    5. By parts used (e.g. Servo, Stepper Motor, ILI9341, etc.)
    6. By libraries used (e.g. FastLED, RTCLib, etc.) - at least for Arduino Core projects
  2. What would the URL structure be like? Some proposals for system collections:

    • wokwi.com/browse/micropython
    • wokwi.com/categories/micropython
    • wokwi.com/collections/micropython
    • wokwi.com/projects/micropython (but we already use wokwi.com/projects for user projects, so we've to be careful here)
    • wokwi.com/micropython (that would work if we only had a small amount of system collections)

    For user collections:

    • wokwi.com/makers/<username>/collections/<id> (which also means we'll have to roll out maker profiles to all the users). The <id> can be either numeric, or derived from the user defined collection name (e.g. awesome-led-projects)
    • wokwi.com/collections/<id> - In this case, since <id> is global (not user specific), we'd probably just use numeric ids as several users can have the same collection name.

Would love to hear what others think.

urish avatar May 11 '22 10:05 urish

I would have no system generated collections. Pretty quickly people will just have to find workarounds to undo them because they sort stuff in ways no one could imagine.

leftCoast avatar May 11 '22 20:05 leftCoast

Pretty quickly people will just have to find workarounds to undo them

What do you mean by "undoing them"?

urish avatar May 11 '22 20:05 urish

You can always consider 2 levels of organization.

  1. Collections
  2. Tags/Categories

This could allow searching across collections while retaining some sense of organization

Can we also have a Public v Private option?

Thanks!

DiskDoctor avatar May 11 '22 20:05 DiskDoctor

What I mean by "undoing them" Is that at the start, there is pretty much no way to know how this will be used. Every one will probably have a completely different idea how to sort their stuff. I'm seeing folders here. In this case any sort of automatic sorting may very well just get in the way of whatever the user has in mind. Possibly, once this has matured and common patterns begin so resolve, some sort of automatic sorting may turn out to be a good addition.

leftCoast avatar May 13 '22 05:05 leftCoast

Ok, now I have a use case for this. The plan is to create a set of example sketches for the LC_baseTools library. There is currently about three people interested in working on this (including myself) So three people should be able to edit the simulations but everyone should be able to run and share them.

Also, if this works. I can see it being a very popular way to serve out example code. Unlike a video, you will know if it works or not. And you can tweak it without dealing with getting hardware to run for you.

I thought about doing this through github, but I far rather hack away at small stuff on Wokwi itself. And the back and forth of editing and changes can be very fast between people doing Wokwi. So I can't see how a shared github could help.

Possibly we'd need some sort of lock mechanism for setting who's editing at this moment? And possibly something to tell the current running users that there is now a fresh copy to see.

leftCoast avatar Aug 15 '22 20:08 leftCoast

Hi, wouldn't it ever to just use something like the VSCode plugin and use already all the organization that the OS and VSCode allow?

The pluggin is already working in alfa. Maybe it makes more sense to vote for it rather than this? https://github.com/wokwi/wokwi-features/issues/414

Twistx77 avatar Nov 24 '22 05:11 Twistx77

So, is there any chance that folders/directories could be incorporated to add additional organization within a project? That way you can reference code library locations in folders/sub-folders (ex. src/FastCRC/FastCRC.h). I think this would be an excellent feature to incorporate alongside the things suggested above.

I would definitely up-vote this feature suggestion if what I described above is a part of the feature set.

jcboyer96 avatar Dec 16 '22 01:12 jcboyer96

This feature request has almost made it to the top of the list, so I'm starting to plan the implementation. My thoughts so far:

There will be two kinds of collections:

  1. System/global collections - e.g. Raspberry Pi Pico projects, MicroPython projects, Rust, Servo projects, FastLED projects, etc
  2. User-curated collections - See some specific thoughts in this comment.

Open questions:

  1. What should be the resolution of the system generated collections? I can think of at several different ways to categorize projects:

    1. By chip family (ESP32, AVR, STM32, RP2)
    2. By chip (e.g. ATMEGA2560, ATtiny85, ESP32, ESP32-S2, etc)
    3. By board (e.g. Arduino Uno, Arduino Nano, etc.)
    4. By programming language / toolchain (e.g. Arduino Core, MicroPython, CircuitPython, Rust, esp-idf, Pi Pico SDK, perhaps in the future also PlatformIO, Zephyr Project, etc.)
    5. By parts used (e.g. Servo, Stepper Motor, ILI9341, etc.)
    6. By libraries used (e.g. FastLED, RTCLib, etc.) - at least for Arduino Core projects
  2. What would the URL structure be like? Some proposals for system collections:

    • wokwi.com/browse/micropython
    • wokwi.com/categories/micropython
    • wokwi.com/collections/micropython
    • wokwi.com/projects/micropython (but we already use wokwi.com/projects for user projects, so we've to be careful here)
    • wokwi.com/micropython (that would work if we only had a small amount of system collections)

    For user collections:

    • wokwi.com/makers/<username>/collections/<id> (which also means we'll have to roll out maker profiles to all the users). The <id> can be either numeric, or derived from the user defined collection name (e.g. awesome-led-projects)
    • wokwi.com/collections/<id> - In this case, since <id> is global (not user specific), we'd probably just use numeric ids as several users can have the same collection name.

Would love to hear what others think.

I'm increasingly becoming in dire need to organize projects. As I pile up more examples, I'm increasingly finding it hard to navigate myself. It would be nice to get this feature sometime soon :) especially as Wokwi is growing in popularity and the number of projects is increasing.

For me, the resolution for the system generated collections probably makes sense by language. I would also go for the wokwi.com/collections/micropython URL structure. As for user collections, it would be nice to have maker profiles. Sort of a way to showcase someone's work on Wokwi.

apollolabsdev avatar Aug 02 '23 07:08 apollolabsdev

Thanks for the feedback!

Some of this is already implemented:

  1. For rust and micropython, we have https://wokwi.com/rust and https://wokwi.com/micropython (more pages coming soon - maybe even this week - for esp32, pi-pico, arduino, and stm32)
  2. Maker profiles - you can create one at https://wokwi.com/dashboard/profile. Select a username, and you'll be listed at https://wokwi.com/makers

urish avatar Aug 02 '23 07:08 urish