Loklak is a server application which is able to collect messages from various sources, including Twitter. The server contains a search index and a peer-to-peer index sharing interface. All messages are stored in an elasticsearch index. An automatic deployment from the development branch at GitHub is available for testing here https://loklak-server-dev.herokuapp.com
'Lok Lak' is also a very tasty Cambodian stir-fry meat dish (usually beef) with a LOT of fresh black pepper. If you ever have the chance to eat Beef Lok Lak, please try it. I hope not to scare vegetarians with this name, currently I am one as well.
Please join our mailing list to discuss questions regarding the project: https://groups.google.com/forum/#!forum/opntec-dev
Our chat channel is on Gitter here: https://gitter.im/loklak/loklak
Loklak_server is the framework for messages, queries, suggestion, geocoding, accounts and more. These services do not have a graphical front-end, hence this repository houses the apps page, which is a showcase for developers and their applications which use loklak_search. Some of the applications in the repository include-
- LQL (Loklak Query Language), an advanced search tool for loklak
- NMEA, a software application for tracking GPS NMEA Data using Loklak and OpenStreetMaps
- WebScraper, an application which converts web pages into structured data
- accountpermissions, an accounts operations application using an Accounts API for view permissions
- barchart, a stacked bar chart using loklak_search and D3 stack layout
- boilerplate, a 'hello world' loklak app
- bubblecharts, a bubble chart using D3 pack layout and loklak
- ducphanduy, a loklak tweet search page using AngularJS
- forgotpassword, a accounts operations application for password recovery system
- fossasia-histogram, a tweet analytics application of loklak tweets histogram about FOSSASIA
- histogram, a message visualiser encompassing a tweet histogram plotter
- keyRegistration, an accounts operations application for registering a public key
- knowTheDiff, a software application comparing search and aggregations
- loginPage, an account operations application to log in to loklak
- oneClickDeploy, an API to increase loklak peers
- queryBrowser, a suggestion search listing all queries made in loklak
- resetpass, an account operations application to reset one's loklak password
- sentimentVisualiser, a tool for visualising the sentiment of a tweet
- signup, an account operations application to sign up to loklak
- social-wall, a loklak API-based twitter social wall
- superwoman7, a vertical tweet search message timeline
- susi, a chat with Susi API
- tweetfeed, a twitter feed using polls with infinite scroll
- tweetsleaderboard, a leaderboard based on the number of tweets using a Users API
- userprofile, a user profile visualisation using loklak
- yasoob, a loklak search page
- yathannsh, a loklak search page
- newyear, a page that displays new year tweets using the loklak api
- CountryTweetMap, an app to plot and compare tweet frequency on map
- LoklakWordCloud, an app to generate Word Cloud using Loklak
- MultiLinePlotter, an application to visually compare tweet statistics
- TwitterFollowersInsight, an application to visually check followers country vice aggregation
- WorldMoodTracker, an app track mood of people from around the globe
- collegeElections, an application to conduct and evaluate college Elections
- compareTwitterProfiles, an application which shows comparison between two twitter profiles
- emojiHeatmap, an app which shows emoji usage in twitter
- emojiHeatmapper, an application which shows tweets contatining emoji as Emoji-heatmap and Emoji-map
- whatsTrending, an applicaton to get top trending hashtags on twitter
- loklakGoApi, Library for using loklak API from Go
- loklakJavaApi, Library containing the methods for using loklak API
- loklakNodejsApi, Library for using loklak API from NodeJs
- loklakPythonApi, API for python as a replacement for twitter API
- loklakRubyApi, API wrapper to use loklak API from Ruby
How to create a loklak app
- Create your app
- Make a subdirectory in
- Add at least three files into this folder, named
screenshot.png. For an easy quick-start, use and copy the app boilerplate from https://github.com/fossasia/apps.loklak.org/tree/master/boilerplate
- The screenshot must be cropped into 640 x 640 pixels and in .png format.
- The file
index.htmlis the landing page of your app. Use
/js/angular.min.jsfrom the loklak root path for your application. The app should make use of the json libraries in
/js. If applicable, make use of the bootstrap style from
- The file
app.jsonmust be in json-ld format (see http://json-ld.org/) and must contain the
SoftwareApplicationobject from schema.org: https://schema.org/SoftwareApplication -- just copy-paste an existing
app.jsonfrom another app to start you own file
- Modify the field
app.json: it must contain a comma-separated list of all api paths, that the app calls. This is used to apply authorization markers to the app, so it becomes visible if the app is actually usable for the user. Examples:
- Alternatively, you can use loklakinit tool to automatically create your app directory structure, app.json and initial dummy HTML, CSS, JS and documentation files to quickly get you started with your development work. Learn more about the use of loklakinit tool [here](To know more in details about developing a Loklak app, preparing your app for store listing and updating Loklak app wall with your new app, please follow this tutorial.
- Check quality of your app
- Do a json-ld validation: use https://developers.google.com/structured-data/testing-tool/ to check your
- Call http://api.loklak.org/api/apps.json to see if your
app.jsonis included in the app list
- Check if all declarations in your
app.jsonrelate to your own app (if you copy-pasted another
app.json, you may have forgotten to change some fields)
- Under Application Category try and choose one of the following Categories: a. Accounts b. Game c. Visualizer d. Scraper e. Search f. Internet of Things
- List an appropriate Application Sub Category too
- Check the style and behaviour of your app: don't deliver half-done code.
- Open your
index.htmlin different browser to check that your code is not browser-specific
- Add a backlink in your app to
/apps/to make it possible that users can browse from your app to all other apps
- Publish your app
- Send a pull request to https://github.com/fossasia/apps.loklak.org
- All your files must be contained into one commit
To know more in details about developing a Loklak app, preparing your app for store listing and updating Loklak app wall with your new app, please follow this tutorial
How to run Loklak Apps locally
You need to have NodeJS and NPM. To run Loklak Apps locally, follow the next steps
- Open apps.loklak.org project directory in terminal
- This starts the development server at port 8080. Open browser and visit http://127.0.0.1:8080
How to run tests
Loklak apps site uses jasmine testing framework with protractor for testing. To run the tests follow the steps mentioned below.
- Open the project directory in terminal.
npm installif you have not already
npm run update-driver
- Run Loklak apps using
npm run start-driver
- Finally start tests using
How users will discover your app
The loklak front-end will compute an aggregation of all those app.json descriptions and provide this in
/api/apps.json as a list of the single app.json files.
A front-end (another app) will provide an overview of the given apps in visual form. This will be linked in the loklak front-end.
Please help us follow the best practice to make it easy for the reviewer as well as the contributor. We want to focus on the code quality more than on managing pull request ethics.
- Single commit per pull request
- Reference the issue numbers in the commit message. Follow the pattern
Fixes #<issue number> <commit message>
- Follow uniform design practices. The design language must be consistent throughout the app.
- The pull request will not get merged until and unless the commits are squashed. In case there are multiple commits on the PR, the commit author needs to squash them and not the maintainers cherrypicking and merging squashes.
- If the PR is related to any front end change, please provide link to a sample deployment of the site with the changes you have made.
What is the software license?
Where can I report bugs and make feature requests?
This project is considered a community work. The development crew consist of YOU too. I am very thankful for pull request. So if you discovered that something can be enhanced, please do it yourself and make a pull request. If you find a bug, please try to fix it. If you report a bug to me I will possibly consider it but at the very end of a giant, always growing heap of work. The best chance for you to get things done is to try it yourself. Our issue tracker is here.