New GeoSocial Network platform - KeplerJS

Hi everybody devs!

In recent months I have resumed working on my very large Meteor project, the biggest of my experience in Meteor, after a part of rewriting for supporting pkg-based architecture and a plugins system now is published and it is online and released under MIT license.

KeplerJs

It is an open source Geosocial solution that allows users to create and share favorite places and join discussions, checkin in places in real-time.
It can be seen as a platform where users can interact with other open data platforms searching across OpenStreetMap, Geonames among other sources, importing data in order to create a new social layer above them. For full list of features see here

Project Homepage:
keplerjs.io

Documentation:
docs.keplerjs.io

Demo online:
demo.keplerjs.io

Roadmap:
keplerjs-roadmap

Follow the updates:
twitter.com/kepler_js

Repository:

Issue Reporting:
Kepler/issues

If you like the idea please share on your social media and follow the project on Github download it and try it out. Every suggestion is welcome. If you are interested in participating or even just trying it out or even reusing it for some of your case studies I’ll be happy!
Looking for contributors Developers, testers and translators!

Best Regards

Stefano Cudini
labs.easyblog.it

11 Likes

Hi Stefano
First I want to say that I am NOT an experienced meteor developer! I had a look at your project and I see it has great potential
I have been working on a prototype (php) for a multi-community “marketplace” for a long time but I am a bit fed-up with my own “self-aborted” project
There were some good ideas there which I would love to implement with your project (though this may be a bit presomptuous :slight_smile:

Clearly your work is way ahead with respect to what I have done.
I am trying to dive into your code to see how it is but I think I will need to go back to the meteor tutorials before bothering you seriously :wink:

So really big thumbs up for your good work, I hope I can contribute in some ways…

Just in case however, I have tried to add the facebook login but I get an error, I tried to upgrade to accounts-facebook@1.0.12 but I get a meteor error version conflict, that is probably my inexperience at stake, I will see what I can find


D:\keplerjs>meteor add accounts-facebook@1.0.12
=> Errors while adding packages:

While selecting package versions:
error: No version of accounts-facebook satisfies all constraints: @1.0.12,
@=1.0.7
Constraints on package “accounts-facebook”:

  • accounts-facebook@1.0.12 <- top level
  • accounts-facebook@=1.0.7 <- top level
  • accounts-facebook@1.0.7 <- keplerjs:lib 1.1.0 <- keplerjs:core 1.1.0

Regards Emmanuel

1 Like

Thank you very much @ejouan for your interest! :+1:

For technical issues and bugs maybe it’s better to discus on Github issues:
https://github.com/Keplerjs/Kepler/issues
However accounts-facebook,accounts-google,accounts-twitter it’ just included but hidden in css:
https://git.io/v5UDN

So leave this space for design and project talks. I’m curious to know about your good ideas…!
KeplerJs’s progeny was written in PHP and Postgresql… boooring :sweat:
A few years ago after rewriting all the php code in relative Meteor code in less than 1 week… I became a great fan of Meteor! :star_struck:

Looks pretty cool! But what are your plans for it? Are you going to launch your own site with it? Seems like if multiple people were to set up their own instance, the userbase would be split, which is rarely good for social networks. Or do you think this is something that would be most useful for smaller common-interest communities?

1 Like

Hi herteby
Thanks for your comments! very interesting but I’m not sure to understand the concept about the userbase…
KeplerJs is just a tool to create new small social networks is not another big social network that contains everyone.

I have no plans for the future for now I just want to see what’s the feedback from the developers

Hi

here is the link to what I have developed
www.dz-app.com and click login
I can send you the login credentials privately just let me know how to get them to you.

I discover now that the facebook login is broken ;( I have not checked this online for a (obviously too long) while
this is probably due to updates to the facebook login procedures and I dont want really to spend time on that right now

The idea behind my project (and that answers also @herteby) is that social users are structuring their life interests by creating/belonging to social groups,
Without going into a debate, I see it already integrated into the social providers, there is no split user-base at all, you need to factor-in the fact that a single person may have split interests, not necessarily overlapping and some actually segregated from one another.
This seems to me as a completely natural reflections of both human personality and interaction

Actually one of the reason that pushed me to do this project (back in 2013/2014) was that facebook groups are really a meager representation of what people want actually to do with each other in a group.
FB now has selling groups, but they are not searchable geo-spatially and it is not so easy to filter/sort the different types of (buy/sell) group posts.
Also exchange between people is not only buy/sell, a lot nowadays is about exchanging to overcome the shortage of cash and to propose in a new light the skills and knwoledge and availability that people have

The idea is that people have needs (thing they need) and offers (things they can offer)
some are one-shot, others are recurrent
people express that through the platform, these may have a validity, tags, pictures, documents etc…
each of those needs/offers generates a chat-like discussion (the owner of the request can see all, others see only their chat)
At the end of the discussion a deal is closed and feedbacks are encouraged to be given to reinforce the solidity of the community and to make more visible who does what and how

Also, people have skills and the idea is that there would be a matching engine to run through those and propose already existing requests form others (for jobs, for hobbies, experience-sharing, etc…) to optimise fulfliment and to make people’s lives easier

On the technical aspect, the idea behind my platform is that when a social user logs in (through FB or other) I am capturing the groups he belongs to.
On my platform each community is defined as a list of social_provider_id/group_id
A user can belong to any community if he has at least one of the registered social group for that community
Clearly, his means that there is a “community registration process” in the back-end

I don’t save any of that social info apart from from the last community he logs into, this is used in case he uses standard login procedure (the one to be used now as FB logins breaks)

My orginal idea was a free service for the basic users to answer without limits and to express one request.
Users who wanted to be more active would have a very low priced upgrade (like 5euros per year) to get unlimited requests
Those who want to expose portfolios (e.g. like members of a community who are also estate agents) could pay also for a reasonable fee and have unlimited assets in their portfolio
I am not sure anymore about that (in fact i stopped my dev) so I am open

I do believe there were a lot of natural ideas in my original intention, I got tired of developing alone, and being told everytime I showed the prototype that it sucked (and it does somehow)

Sorry for long reading, i hope something can manifest out of that good will to do things

Best regards
Emmanuel

hi

@ejouan

I’m not promoting a startup… or some strange business model.

I am a developer and I write software distributed in open source licenses

http://keplerjs.io/ is a tool which can be used by other people for making one ore more platforms…

Ciao

I think I did not get my message across in the right way, I am not promoting any startup either, I was just presenting where I am coming from so as to put things in perspective in an open way.

Also I am not trying to push my previous development. Quite the contrary

I am nicely impressed with the work you did, and wish I can contribute/expand on your project by adding some features

that is it.

The base concepts to keep in mind for this Open Source Project
Most of the base code is contained in the plugins.
Each plugin can be disabled or taken and modified or created by new ones.

If you want to implement your functionality to keep them generic and compatible with the basic platform I can give you a space as a collaborator in the KeplerJs Organization on Github.

If you also want to help me correct some translation errors or add new langs… see the i18n core package.

Alternatively, if you want to create your own personal adapter, I recommend you to make it as a KeplerJs plugin and publish it with the same license(MIT) in a your public repository and then publish it at Atmospherejs.com!

A good idea to begin to understand basic functionality is to disable all plugins using meteor remove for each meteor package plugin.
If you want to start kepler adapting to your study case right now, you should take one of the plugin code example, for example keplerjs:share and study its code.

Excellent stuff!!

Most immediately I can contribute to the translation files (i am french, live in italy for 15 years and fluent also in spanish)
I will immediately get to that

As per your suggestion I will start to see how the code/plugins works before pretending to contribute per-se

1 Like

Thank you @ejouan

This meteor package take care to contains the translations texts: https://github.com/Keplerjs/Kepler/tree/master/packages/keplerjs-i18n/i18n
But only for the core modules… each Kepler plugin has it’s own i18n directory inside(for example)

for enable more langs you can add its in the default settings… or via meteor settings

I’m sorry if I was unclear … trying to write documentation about this
I’m thinking about the best way to organize i18n texts…

  • each plugin contains all own languages
  • each languages organized in a differente git repository
  • only one repository for all languages for all plugins

https://github.com/Keplerjs/Kepler/tree/master/packages/keplerjs-i18n/i18n is already done in French and Spanish, i also made some corrections to the Italian and English, nothing major;)

I am carrying on with the individual plugins and will let you know once I am done

1 Like

Provided German texts as a PR.

3 Likes

I have finished translating all in ES & FR
Not being familiar with PR and actually with Github altogether i dont know how to submit this to you
Please suggest
Thanks
E

2 Likes

@ejouan you can use for example https://pastebin.com/ and share the url! tnk!
However, I recommend joining Github to contribute to the project

Hi
I have joined github as ejouan, please add me to project, I am getting up to speed on github and now need to push back to origin if i understand correctly
sorry for the trouble
Regs E

Hi, @stefcud. Looks great! I’m working on a project that uses a lot of the same functions. I’ve built it so far using pup(http://cleverbeagle.com/) with react. I’m excited to try yours out!

Do you have map clustering? I’ve got some flickering issues with mine in some situations. I also haven’t yet addressed the need to search the map according to proximity. Are you doing that?

On another issue, I was considering making native versions for ios and android using react native. Do you have any idea if native would impact this category of app?

I think the main things you’ve got that I don’t is friends and map check-in. I DO need these. How difficult were these to implement? I have accounts, user status, user profiles, user mapping and tracking(though my clusters flicker), geolocation, and user map markers. I’ve also go Facebook(and other) logins and I figured I’d extract base friend info from there.

Cheers,

–Will

1 Like

Hi @stefcud
In the meantime that I can do sth on github, here is the FR, ES and some IT-EN corrections
You can download from http://www.dz-app.com/keplerjs/packages.7z
Regs E

@ejouan
I’m sorry but I done a partial integration for languages es, fr because there are several javascript code syntax errors :frowning:

Unfortunately I must to spend my little free time with the development of other features and bugfixing I can’t fix other errors.
I will only accept clean Pull Request on Github and tested code for contributions.

thanks anyway

Hi @mckinleymedia

Do you have a demo or code on github that we can see about your project?

Yes proximity search already works roughly!
For the places you see on the map, but I have to decide the level of proximity, if need to be in the order of meters or miles… or same administrative bounds, but this currently in KeplerJs can be implemented very easily just modify only one mongodb query!

Sorry but I do not use React but only Blaze

Most likely you need KeplerJs :sweat_smile: