Starting a new FOSS project, call for assistance

Hi Everyone,

I’m John - I’ve been an engineer, architect and consultant here at MongoDB for the last 8 years and I recently joined our Developer Advocacy team.

One of my plans is to create some Open-source applications, built on the MongoDB platform (including Realm) that are owned and developed by a community. I’d like to get to a state where someone with no previous understanding of MongoDB can come along and with a few instructions pull the code from Github, push it to Realm and start running a private application with a backend to meet an actual need.

For example, last year I saw lots of people wanting to run online quizzes for fun and education. Whilst there are “Quiz as a Service” applications out there they lack the flexibility in their free tiers. With your own Atlas cluster and Realm app + source that would not be an issue.

I’m also aware that decentralised Twitter style social media is a popular idea, that’s another option I was looking at.

My intent is to be very closely involved in the early design and development phases for this (even if it’s me alone) and to use that to create articles on schema design, code design, scaling and all that stuff. Ultimately I’d like something that a community can own, grow, fork and importantly just use with no coding if that’s what they want.

I’m putting this here to ask for help - a community effort start in a community. Initially I’m looking for application ideas beyond the two I have given - or feedback on those. I think, for it to be worthwhile it should be a multi-user application, that a non developer might want to host and use. Suggestions I have so far.

  • Quiz App (Users can define questions and run live interactive quiz)
  • Twitter style social media app (Users run node to host their own content and their friends content but nodes can be connected )
  • Chatroom software (I think this is a saturated market)
  • Forum software (I think this is a saturated market too )

What else can you think of?

7 Likes

What about, similar to a quiz… a form-builder. Similar in schema to a quiz app - but a bit more flexible in the types of components.

2 Likes

Do you mean a Generic UI for data entry and retrieval in forms @Michael_Lynn ?

Yes - think google forms - but MongoDB backed… complete with suggested charts for data presentation.

1 Like

Ah Google Forms - that’s different I was thinking Oracle Forms - just a generic business app for finding and entering data.

1 Like

John, I was just this week pondering that my own Wordpress-based site needs to come into the MongoDB fold, but I’m unsure if some type of “migrate your Wordpress site to Realm” effort would be anything short of a Goat Rodeo™. If there’s a smidgen of merit here, I’d be interested in pitching in - just haven’t had time to give it any thought to this point.

1 Like

Hi @Eric_Reid ,
This effort is sort of Inspired by Wordpress and how it drove php and the development of the LAMP stack (In my opinion) but I wasn’t considering writing a replacement for it simply because CMS is a pretty crowded marketplace and also not one that I’m personally enthused by. Something smaller with less alternative options would be better.

Had a bit of out-of-forum feedback. What do folks thinks about a completely generic, forms based entry/edit/find/search/link interface - essentially can be used for any kind of data entry/retrieval by any organisation or individual. Less specific but possibly a better starting point

2 Likes

love it. :heart: :hamburger: (and a few more characters here because I need 20 to actually post this… so.)

Hi @John_Page, I would love to contribute here.
One of the things that I enjoy the most is building full-stack apps using React, Node, and MongoDB. Please let me know if I can be of any help.

Thanks and Regards.

Really like the whole Oracle Forms analogy. Basically, I think there is still a gap in the market for internal departmental-wide “rough and ready” data applications, where department staff need to manage data but don’t necessarily have the time or skills to turn to a programming language and full-stack environment to build such stuff from scratch. Follwing the demise of Oracle Forms, Oracle revisited this paradigm with APEX Oracle APEX but the challenge is probably knowing when to stop and enough features are there, otherwise it becomes a big montster that is hard for lay people to understand, thus defeating the purpose of it in the first place. Other relevant keywords: WYSIWYG, Low-Code, No-Code.

I’d be up for contributing!

( in a previous life, a very very long time ago, I was actually an engineer in Oracle’s Designer/2000 group - I was in the Form Generator team writing C code to generate pre-built Oracle Forms (Developer/2000) from a data model and some metadata, including generating client-side PL/SQL (those were the days! :smiley: ).

3 Likes

Hi John,
since a year I am carrying an idea with me, but never had time to kick it on. A nature protection project.
Basically so simple as in counting populations of birds in nesting boxes. Build statistics, do prediction, merge with geo data to show the influence of traffic, weather, construction…
This would cover,

  • offline first since we are often remote,
  • mapping locations (take a foto, assign it, grap the location) and details on the type of nesting box
  • take note which birds or animal over the winter user the box
  • build a maintenance cycle since the boxes must be repaired frequently
  • so we need Mobil sync
  • charts
  • lots of analytics
  • I can imagine Text search
  • data lake for “aged data”
    Specially the prediction part can be very cool maybe we get this more native to MDB and do not need to use 3rd party tools…

There are much more details, this only as a teaser.

regrads,
Michael

1 Like

Hi @michael_hoeller , have you looked a the MongoDB WildAid app (MongoDB Cloud To The Rescue: Protecting Our Oceans With An Open-Source Application | MongoDB Blog) its is very close to that already.

Is it not a bit of a bit of a niche use case though?, I’d like to think a few years from now we have 10,000 installations.

1 Like

Why not all of the above? :wink: That sounds cheeky, but hear me out…

Something Drupal has the notion of is “distributions” which are essentially various starter kits with some configuration and add-ons pre-installed: Drupal for Commerce, Drupal for Social, Drupal for Publishing, Drupal for Government, etc.

So what if we pulled your awesome idea up a level, we could potentially create a whole new category of thing, “MongoDB Starter Kits” or what have you… outline some guidelines/templates to follow, and then invite the Community (capital “C,” inclusive of MongoDB internal folk as well) to contribute these.

Then the submissions could be inclusive of both pragmatic, solve X problem things (Quiz, Twitter clone), as well as more “framework-y” things (Form Builder), and even more niche interests like a nature protection project. All would have a place.

Sorry, not meaning to add scope. Just putting forth the idea that while you’re figuring out which of these ideas to work on first (which you have to do either way), also maybe try and think about what infrastructure would need to be in place to have 20 or 30 of them. I’m super happy to help with brainstorming this, if you think it’s a good idea. :slight_smile:

5 Likes

That’s sort of the plan (MongoDB starter kits), to have many of them however I am very wary of creating a framework at the expense of the code that’s actually needed. I’m a great believer in writing understandable, modifiable, reusable code and classes rather than any sort of explicit framework. We can go the dedicated app but modifiable code route - or we can go the no-code (unless you want to) multi purpose app route but I honestly we have the framework in Realm Server we just need to build things with it that aren’t more layers.

Sorry, I was not suggesting that we use a framework for what you’re proposing… BIG +1 on understandable, modifiable, reusable code! :smiley: The closer to “bare bones” Realm, the easier it will be for folks to understand/reuse.

It was more a general note that it would be awesome to start from Day 1 planning to make an entire repository of these things, and thinking about the governance; specifically, how to invite contribution from the wider community to add additional ones, and what that might look like.

1 Like

For example here’s Redis’s version of what I’m talking about: https://launchpad.redis.com/ Is this about what you are thinking, as well?

1 Like

I like the concept and sharing at this early stage.

I also think the majority of you are aiming for the sky. Which is not bad perse , but Ifor developers to go in and out and contribute the initial scope should be smaller.

Either just some npm package or a react component.

Unless the core developers are willing to give few months coding until the first MVP, docs, website, GitHub issue templates, etc.
Or mongodb pays for the Devs time :slight_smile:

Aim for the sky but don’t forget where your foot is going to land next .

Lastly, don’t forget to make it fun. A side project shouldn’t be tedious and full of burocreacy :rainbow:

1 Like

Hi Gianfrance,
For me this won’t be just some side project but part of my paid job - as I said If I have to write it alone then so be it. I was canvasing for ideas and anyone that might want to assist now or in the future.

The purpose it to create the first (of hopefully a number) of apps that someone can use without doing any coding if they don’t want to - or they can modify to their needs. I’m not looking to create frameworks or components for their own sake.
John.

I also think the majority of you are aiming for the sky. Which is not bad perse , but Ifor developers to go in and out and contribute the initial scope should be smaller.

Well, in my mind the first iteration could be as simple as 1) a designated place in GitHub to stick these “starter kits” and 2) a README that explains how to add more of them.

But fair enough, back to the topic at hand. :slight_smile:

How I can help is in reviewing and improving documentation to get started with the code. I have the uncanny ability to stumble into problems, and am happy to help someone else not do the same. :smile:

4 Likes