Initially our team had two ideas. The first was to create a repository of lectures and associated data (lecturer, attendees, videos, slides) and to provide a tool for university lectures to add their resources and lectures very easily. The prospect of having access to this data spawned other ideas but the one we settled on was a topic based voting application that would allow users to vote the best content for a topic to the top.
We quickly felt that we had bitten off more than we could chew so fell back to the repository for lectures application. We chose Rails for this since it is represented a reasonably classic CRUD application. John Mildinhall, our User Centred Design Specialist designed a beautiful workflow for the application that Vince and I proceeded to butcher.
We settled initially on ‘Knowledge is Free Again’ shortening this to kifa. We were reliably informed this was a racist term in some parts of the world so Vince changed it to kif, although he didn’t realise this is hash in Morocco.
By the end of the day we had a semi working application that we were able to demonstrate to the other teams but with much functionality incomplete. This was somewhat disappointing given the purity of John’s vision.
For us the idea is still a good one. Knowledge exists in silos in different universities and there isn’t a good way to link students and lecturers studying the same topics to resources. We felt that the application would be most useful for building other applications on top of it though. With an open JSON API if the application were used it would provide a rich data source on lectures and seminars around the world that developers could use to create all kinds of applications.
The source for the project is available on GitHub and the somewhat half-baked demo is available at http://kifa.herokuapp.com.
Have an update or suggestion for this article? You can edit it here and send me a pull request.
Using HashiCorp Vault with LDAP
How to use HashiCorp Vault to setup an LDAP backed secret store with read-only access for users in groups and read-write access for specific users
Linux and Unix xargs command tutorial with examples
Tutorial on using xargs, a UNIX and Linux command for building and executing command lines from standard input. Examples of cutting by character, byte position, cutting based on delimiter and how to modify the output delimiter.
Copy a file in Go
How to copy a file in Go. The ioutil package does not offer a shorthand way of copying a file. Instead the os package should be used.