ColoradoSchoolOfMines / mozzarella

Mozzarella is a web application made to help student computing clubs better collaborate and organize their projects, presentations, and even mailing list messages.
https://acm.mines.edu
GNU General Public License v3.0
7 stars 3 forks source link

RFC: Should we implement everything as a Wiki? #42

Closed sumnerevans closed 6 years ago

sumnerevans commented 6 years ago

We are in the process of trying to integrate Project pages (#40) and User profile pages (#39) into the website. Each of these will have a large amount of dynamic data.

For example, all projects have a title, description, project leaders, etc., but they may have any number of other fields that are specific to the project.

Also with Users, most people will have a name, bio, some contact information, etc., but they may have any number of other fields that are unique to them.

Because of the amount of dynamic content on these pages, they sound wiki-ish. I'm laying out the pros and cons for implementing these as Wiki pages, or individually.

Wiki

Pros

Cons

Individually

Pros

Cons

Possible Compromises

  1. Limit the number of options that can be added to a User/Project and then allow them to link to a Wiki page with further information.
  2. Include some way to embed a wiki page into the project page.

These, too have their pros and cons.

jackrosenthal commented 6 years ago

Let's not do everything in the Wiki. Only things that are textual/documentation style. For example, profile fields should not be implemented in Wiki, but I would not be opposed to things like a bio being implemented in the Wiki.

Why not we consider something MediaWiki style. For example, if a user wants custom bio etc. to appear on their page, they can create the wiki page User:Username where Username is their username, and that would "link" it to their profile. We could even add easy buttons from the profile page to create this page. And current wiki system deals with permissions, so User:*** can simply have special permissions.

Same for Project:***.

And if we implement subpages (which was the plan I had for wiki), subpages of that User or Project page can automatically be linked as well.

jackrosenthal commented 6 years ago

we will have to add a new field to the User or Project tables in the database whenever we want a new field (for example, maybe in the future people want to include their Twitter handle on their profile)

Don't think of adding extra columns as a bad thing; it's rather a good thing as it provides migrational consistency when we make changes. For example, suppose that a social provider buys another, and accounts are merged. Handling this with a migrational change would be easy, but hard with a mess of Wiki data.

jackrosenthal commented 6 years ago

As an added note, don't look at current Wiki code. It's a severe f**k up that I need to fix.

sumnerevans commented 6 years ago

Ok. That sounds good. We will proceed with adding columns as necessary to the database tables, keeping in mind some things (such as a bio) might be migrated to a wiki later on.

Once wikis are implemented, and we have a better idea of use cases, we can revisit this and determine what, if anything, should be migrated.