loading...
Cover image for Request: optional "database" feature

Request: optional "database" feature

peter profile image Peter Frank ・2 min read

Through conversations with a few potential Forem Community Leaders, I've received a similar request in a few flavors that I'd like to discuss here.

The request is an optional to enable a "database" feature.

Example Requests

  • I'm building a Movie Forem and I'd like a way to add movies to the database
  • I'm building a Wine Forem and I'd like a way to add wines to the database
  • I'm building an Exercise Forem and I'd like a way to add exercises to the database

Requested Usage

To take our movies example, let's pretend that the Forem admin of MovieLovers.com wanted to add "Ratatouille" to the database. From there, they would want to add structured information such as the IMDB rating, year of release, length in minutes, director, main actors, etc.

They'd have movielovers.com/movie/ratatouille (or similar) as a canonical URL, where community members could come in to take other actions, such as leaving their own review.

Community members would ideally be able to reference the canonical link in their posts, potentially with a liquid tag such as {% movie ratatouille %}

That would allow for varied posts such as "Top 10 Pixar Movies" and "Delightful Food Films" that reference the same canonical movie link. The movie page would hopefully expand over time, adding references to the places where it had been mentioned.

A community member would also be hopefully be able to make use of a "Movie Search" portal, where they could filter down by any of the structured information (including community reviews) to find something to watch.


Look forward to hearing everyone's thoughts on this request.

Cover Image via Unsplash

Posted on by:

Discussion

pic
Editor guide
 

I think WordPress has already went through and figured out that concept pretty well. Couple years ago they've decided to let developers extend possibility of WordPress to be able to create Databases like that. They called it "Custom Post Types". So by default WordPress lets you create blog posts. You can categorize them, tag them and assign other types of meta data... "Custom Post Types" was meant to let you create another "thing" like blog post, for example "Movies" - it could have its own tags, categories and other taxonomies/meta data (year of release, director, actors, etc.).

Since it was very well built, as a developer, you could do anything you wanted with that Custom Post Type - create separate views for them, search through them, build landing pages, etc. etc.

I personally think it was one of the most important features that WordPress has ever built into their platform.

Tl;DR I think it's a great idea and if we think it through very well, it could be really successful addition to Forem. Luckily, WordPress has created a precedence for that kind of feature :).

 

Great idea, would love to use this for my Scotch community! My use case would involve at least two separate databases, one for distilleries and one for individual scotches, with the potential for a third database for user-generated content. I'm not sure if separate databases is necessary, but think it might be good to have capability to separate them!

 

Hey there do you have your scotch community online?

 

Not yet, but we’re working on it and hope to have it up soon!

 

I think the technical term may be "thing". 😄 Forem needs "things"......

The problem we're dealing with is the nature of abstractions. What is a thing and what are the core features of a thing? What does every thing have?

Some attributes of the "thing" probably have more app awareness (aka, does the thing belong to a user on the platform? Probably, in that it makes sense for a user to "have many things"...)

But also, let's think about the movie Jerry Maguire as one thing, but also a single VHS tape of Jerry Maguire is also a thing (kind of like how in forem right now we have "badge" and "badge achievements". There are 30 badges and ~450k badge achievements..... "badge achievements" are essentially a join table...

It probably makes sense to think of things in those terms, where the thing is like the idea of the Jerry Maguire movie and the thing is not the individual cassette.

If the thing is truly able to be abstract, each thing probably has its own schema, eh? Are there any columns which all things share (maybe a name?, possibly a "type" if that is relevant)....

All this is to say.... This is a very juicy computer-sciency challenge.... And fundamentally this needs to be built so that it won't suck. It's very easy to build these kinds of features in a way where they truly suck. But I think well-executed, I agree with everyone that this would be pretty cool in Forem.

 

Taking this movies example further you may want users to be able to mark movies as seen or make their own watch lists. Though this feels like it's somewhere where a developer should be able to develop a plugin that handles all this.

 

Yup, any kind of extensibility of functionality is definitely plugin territory.

 

I would love this. I have so many use cases for it!

 

Also this is what i was referring to with this 👇🏼 doable today if you can code a bit, would love to see it implemented like this though