SLMS Membership Software - Help urgently needed

We really need someone to work on our membership system. It’s built with Node.js and you can look at the source here: https://github.com/southlondonmakerspace/slm-site (and it’s various modules in other parallel repos)

Matt C and Tom L built this system, but neither of them have the time now to be full-time maintainers. As a result, it’s been unloved for ages now and it’s starting to show its rough edges. I know lots of us are programmers so there must be someone with the skills to take this on. You don’t have to jump in the deep end; Tom should be able to hold your hand through the basics :smile:

Things that need doing, in order of importance:

  • Welcome/confirmation emails
  • Discourse account integration (you can talk to discourse via its API)
  • Fix bugs in admin interface
  • Tool access control
  • Extra GoCardless charges eg. laser cutter use, pledge drives

With the caveat that I am very busy at work at the moment, I am happy to join forces with others to give this some thought. My Node.js is rusty though. Very Rusty.

I thought I would take a look at the existing system to see how it worked, so have cloned the various projects from github: https://github.com/southlondonmakerspace

I am new to Node so when trying to run server.js I am prompted to install various packages, which I have done. However I am unable to install the gocardless package - I get an error:

npm ERR! No compatible version found: gocardless@1.0.x

I have the latest stable version of node and npm and all other packages were installed today so I assume are up to date.

Has anyone else recently been able to clone the projects with no problems or have you any suggestions about what to do? Is this a known problem?

The gocardless package was there when I last checked.

I had a quick look and got the same error, also when trying to run npm update with my year old (previously working) branch.

I’ve tried changing the version in package.json to “*” or “1.0.0-beta6” (which was the version that was getting installed anyway).

Still leaves lots of errors when updating and starting the server, but they’re not fatal. The server does start and I can see the site on http://localhost:8080/

Wonder if its the version of node we are running? Mine is v0.12.5

Anyway will investigate further later.

1 Like

Yeah likely, it was probably built on node -v 10.x

Poked this again tonight. Started a clean project and npm installed all the packages we use.

All work fine except for jugglingdb, in particular its mongodb adapter. Have opened an issue with the project but detect a general air of neglect around it (the projects home page is deceased; on its github page only 3 of 13 adapters are shown as passing the build tests with 4 failing and the balance unknown) My instinct is we should swop it out for the native node mongodb driver. Seems to me the principle of not having a hard dependency on a database is good. But if it introduces a new dependency on an unreliable project to provide the interface it is very very bad. We can write our own ORM layer to maintain a degree of indepence - but first lets just get it working so anyone who wants to help with it is at least able to get it running without a problem.

The database bit is what I’ve struggled with using in the past… Would be happy to spend a day with you some time working on this.

Once I am mobile again that would be fab.

How’s it going @matt ?

Been snowed under at work. Hoping post-meeting this Friday it will ease off enough for me to return to this.

1 Like

@matt I’ve got the code working locally now. Do you recommend a particular free development environment for debugging etc?

1 Like

I use IntelliJ which isn’t free. But if I couldn’t I’d use Aptana - which is built on top of eclipse.

Thanks, I’m trying Enide which is also Eclipse-based, just wondered if there was a more lightweight alternative.

FYI: Update we’re working on a replacement system, however help is needed, the current system is failing badly, many people are not getting access to the space like @pip today