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
- Create your app
- Make a subdirectory in
fossasia/apps.loklak.org/[your-app]
folder - Add at least three files into this folder, named
index.html
,app.json
andscreenshot.png
. For an easy quick-start, use and copy the app boilerplate from https://github.com/fossasia/apps.loklak.org/tree/master/boilerplate - All libraries, css files, javascript and fonts must be either already existent in loklak or you must add this to your app path as well.
- The screenshot must be cropped into 640 x 640 pixels and in .png format.
- The file
index.html
is the landing page of your app. Use/js/angular.min.js
from 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/css
. - The file
app.json
must be in json-ld format (see http://json-ld.org/) and must contain theSoftwareApplication
object from schema.org: https://schema.org/SoftwareApplication -- just copy-paste an existingapp.json
from another app to start you own file - Modify the field
"permissions"
inapp.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:"permissions":"/api/suggest.json"
, or"permissions":"/api/settings.json,/api/account.json"
- 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
app.json
- Call http://api.loklak.org/api/apps.json to see if your
app.json
is included in the app list - Check if all declarations in your
app.json
relate to your own app (if you copy-pasted anotherapp.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.html
in 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
You need to have NodeJS and NPM. To run Loklak Apps locally, follow the next steps
- Open apps.loklak.org project directory in terminal
- Run
npm install
- Run
npm start
- This starts the development server at port 8080. Open browser and visit http://127.0.0.1:8080
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.
- Run
npm install
if you have not already - Run
npm run update-driver
- Run Loklak apps using
npm start
- Run
npm run start-driver
- Finally start tests using
npm test
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.
LGPL 2.1
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.