Git Product home page Git Product logo

loklak_webclient's Introduction

#loklak webclient

Join the chat at https://gitter.im/loklak/loklak Build Status Code Climate codecov Dependency Status

The loklak webclient creates services using the loklak server as a data source. The goal is to develop a fully fledged alternative to closed source twitter like frontend applications. In order to run the service you can use the API of http://loklak.org or install your own loklak server data storage engine. For some parts of the service you require a twitter API currently (to be discontinued in the future). loklak.org is a server application which collects messages from various social media tweet 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.

--

Communication

Please join our mailing list to discuss questions regarding the project: https://groups.google.com/forum/#!forum/loklak

Our chat channel is on gitter here: https://gitter.im/loklak/loklak

Demo version

The goal is to have a demo version that is automatically deployed from our repositories to Heroku.

Installation

Build

  1. Install git, npm, nodejs, nasm, libpng-dev and dh-autoreconfpackages. Run the commands as:
    • sudo apt-get install git-core
    • sudo apt-get install npm
    • sudo apt-get install nodejs
    • sudo apt-get install nasm
    • sudo apt-get install libpng-dev
    • sudo apt-get install dh-autoreconf
  2. Run sudo npm install -g gulp to install gulp systemwide as a tool to run the task.
  3. Clone this repo from https://github.com/loklak/loklak_webclient.git
  4. Create your custom settings file by doing cp configFile.json custom_configFile.json. Edit your settings inside custom_configFile.json.
  5. Run npm install from the root directory AND from oauth-proxy subdirectory, AND from iframely

Technology Stack

Components

  • Nodejs

Services and Dependencies

The goal is to use Bower to manage front-end dependencies in future.

Twitter

Create a Twitter application at https://apps.twitter.com, remember to set the correct website url & callback url (for localhost, http://127.0.0.1/ works better), then modify custom_configFile.json as:

  • Set the twitterConsumerKey var in custom_configFile.json to set the Consumer Key (API Key) from your Twitter app
  • Set the twitterConsumerSecret var in custom_configFile.json to set the Consumer Secret from your Twitter app

A twitter app is valid only for a domain (defined when creating the app). So the credentails above need to be changed also according to the domain (e.g. you'll need to create 2 twitter apps separately for a clone in localhost and for a clone in a remote server)

Loklak Server

See here to run your own https://github.com/loklak/loklak_server (reccommended), and change apiUrl in config accordingly. Last resource, or for production is http://loklak.org/api/

Iframely Link Debugging server

Link debugging server is essential to embed rich contents from tweets, e.g. videos, links, articles, photos, ..etc. This need to be ran separately, just like the loklak server. Go to ./iframely, and run node server. It's a MUST to be in ./iframely folder when executing the service. pm or *nix screen can help managing this service in the background.

Development

After adding twitter credentials and apiUrl, you can leave the rest as is and run gulp dev for development. gulp dev includes an express server to serve the build at gulpDevExpressPort, a proxy server at oauthProxyPort, and browser-sync at 3000. A browser window will be opened automatically.

For a remote server, along with twitter credential for the remote server: change all localhost to your domain e.g. "oauthProxyUrl": "http://mydomain.org:3002/oauthproxy"

Production

We recommend using screen of pm2 to manage your node processes.

  1. If you have your own web server engine, gulp prod will create static files only at directory build. You'll need to run oauth service manually by node oauth-proxy/index.js , and also the debugging service manually, see 'Iframely Link Debugging server'

  2. If your server don't have a web serve, gulp live will serve the app gulpDevExpressPort along with oauth service at oauthProxyPort. You'll need to run the 'Iframely Link Debugging server' mentioned above manually.

When there is a need to change default port oauthProxyUrl, oauthProxyRedirectUrl, oauthProxyPort should have the same port. The port to the application can be change at gulpDevExpressPort

IMPORTANT Since OauthProxy instance are also using fields from custom_configFile.json, if twitter credentials are changed, including consumerKey, consumerSecret & callbackUrl, OauthProxy must be restarted. This only applies for production since in development, the instance is restarted automatically with gulp dev

Troubleshooting

  • On *nix based systems (latest Ubuntu, Fedora version) you might get an Error: watch ENOSPC when running gulp dev. To fix, check this post on Stackoverflow.
  • version 'GLIBC_2.14' not found required by imagemin-jpegtran. To fix this, make sure you have installed nasm, libpng-dev, dh-autoreconf. Then do rm node_modules -r and npm install.
  • Problem with node-gyp? Check if you meet the requirements here: Link

Contributions, Bug Reports, Feature Requests

This is an Open Source project and we would be happy to see contributors who report bugs and file feature requests submitting pull requests as well. Please report issues in the GitHub tracker.

Branch Policy

We have the following branches

  • development All development goes on in this branch. If you're making a contribution, you are supposed to make a pull request to development. PRs to master must pass a build check and a unit-test check on Travis
  • master This contains shipped code. After significant features/bugfixes are accumulated on development, we make a version update, and make a release.

License

This project is currently licensed under the The MIT License (MIT). A copy of LICENSE.md should be present along with the source code. To obtain the software under a different license, please contact FOSSASIA.

loklak_webclient's People

Contributors

aaronjan avatar abuissink avatar aneeshd16 avatar awinecki avatar chirag04 avatar daminisatya avatar dengyiping avatar gitter-badger avatar jakemmarsh avatar jigyasa-grover avatar joerx avatar jsyrjala avatar julianfox avatar karlcoelho avatar leonmak avatar mariobehling avatar niteshkhadanga avatar orbiter avatar paradox41 avatar prasht63 avatar rogerhutchings avatar sampritipanda avatar sevazhidkov avatar sopankhosla avatar sudheesh001 avatar writtscher avatar yagogg avatar zyzo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

loklak_webclient's Issues

Filter by people, news, videos

Consider more details from loklak_server

For people, need description to out put like this.
image

Video: Need video thumb and source
Uutiset: Find a filter database for "news" tweets if possible

Registration of Twitter user accounts

loklak shall be authorized to act as twitter application. This shall enable loklak to tweet in the users name. Possible applications are

  • create statistics and tweet these (automatically or manually)
  • cross-tweeting (i.e. writing messages within the loklak environment and loklak pushes them to twitter)
  • producing 'enriched' tweets (i.e. with attached better location coordinates, more text, more embedded media - we will find a way to 'compress' such things into cross-tweets)

Thats just the current vision, not the requirement for this feature!

For this step, we just need

  • a "sign-in" page
  • authentify the entered account credentials against twitter
  • store the credentials 'somewhere' (where? if necessary, hand the credentials over to the loklak back-end server, I will provide a storage and retrieval api, if necessary)

special display of search term on the wall (aka: tell people what the hashtag is)

This feature has the target to reach the milestone at
https://groups.google.com/forum/#!msg/loklak/7azwyuslmTU/q9ueCSgwjZUJ
it also is based on #31 and #34

When the wall is showed the first time, it should NOT display a search input box any more (in contrast to a normal search page), because a wall usually is left as it is and it refreshes automatically.

Instead, the search term shall be written in a large font at the top of the left column, right below the loklak icon (see #34 )

This shall show the audience the tag that the people should use if they want to appear on the wall. Therefore the text below the icon shall be
"hashtag: #hashtag" if the search term starts with a hash

If the search term does not start with a hash, then the line shall be
"wall for 'query'"

Redesign the landing page for the wall

  • Have a big call to action button to start creating a wall
  • Links to other loklak pages
  • Show a list of features offered by the wall

This issue will be updated as the wall grows.

show the statistics "top twitterers", "top mentions", "top hashtags" in wall

This feature builds up on #31

The statistic widgets from the statistic view shall be displayed in the left column of the wall, below the hashtag line (see #35 ).

The refresh time of the widgets must be independent from the update cycle of the wall. While the wall updates in a period as given in the search result, the statistic widgets shall update only once a minute. The time frame for the statistics must be from: (actual time - 1 hour) to: actual time

render the first, top message in the "wall" LARGE

This feature has the target to reach the milestone at
https://groups.google.com/forum/#!msg/loklak/7azwyuslmTU/q9ueCSgwjZUJ
it also is based on #31

We want to see the first/top message in the timeline VERY LARGE. To show the message in a large form, increase the image size (take the large one, 400x400, link like
https://pbs.twimg.com/profile_images/577515909335511041/AFPxKLw3_400x400.png )
and display the message text in larger letters.

This way to display the message shall encourage people in conferences, who see the wall simultaneously during speeches, to tweet their own message to appear on the wall.

TypeError: fs.existsSync is not a function

When I follow the process in README, no page is shown in the browser. The firefox dev tools report
"TypeError: fs.existsSync is not a function"

Steps:
gulp dev
[09:04:41] Using gulpfile ~/git/loklak_webclient/gulpfile.js
[09:04:41] Starting 'clean'...
[09:04:41] Finished 'clean' after 17 ms
[09:04:41] Starting 'dev'...
[09:04:41] Starting 'styles'...
[09:04:41] Starting 'images'...
[09:04:41] Starting 'fonts'...
[09:04:41] Starting 'views'...
[09:04:41] Starting 'browserify'...
[09:04:42] Rebundle...
[09:04:42] Finished 'images' after 93 ms
[09:04:42] Finished 'views' after 162 ms
[09:04:44] Finished 'styles' after 2.07 s
[09:04:44] Finished 'fonts' after 2.04 s
[09:04:47] Finished 'browserify' after 5.15 s
[09:04:47] Starting 'browserSync'...
[09:04:47] Finished 'browserSync' after 58 ms
[09:04:47] Starting 'server'...
[09:04:47] Finished 'server' after 11 ms
[09:04:47] Starting 'watch'...
[09:04:47] Finished 'watch' after 51 ms
[09:04:47] Finished 'dev' after 5.31 s
[BS] Proxying: http://localhost:3000
[BS] Now you can access your site through the following addresses:
[BS] Local URL: http://localhost:3001
[BS] External URL: http://192.168.1.56:3001
GET / 200 13.888 ms - 462
GET / 200 6.120 ms - 462
GET /css/main.css 200 11.439 ms - 276914
GET /js/main.js 200 333.890 ms - 3262523

Then the browser opens http://localhost:3001/
it shortly displays "Connected to Browser Sync" and then shows only an empty page

  • I open the Firefox JS console and reload
  • the console prints out the error "TypeError: fs.existsSync is not a function" in main.js:35192:8

this is inside node.js. I tested my node version:
$ node --version
v0.12.2

This bug may occur to me because I am a node.js newbie and forget to do something. But then that 'something' should appear in the readme.

Check availability of profile pictures and fail-over option

This feature shall be implemented for the search page but shall also be applicable for all other places in loklak_webclient, where a profile image is needed.

We currently have the problem that some profile pictures are not loaded from Twitter in all cases. In case that a load from twitter is not possible, we need an alternative image. That image shall be provided by the loklak_server back-end.
The following process shall be implemented:

  • instead of embedding a profile image directly from twitter, we first show a placeholder (I will provide that)
  • for each placeholder, a javascript function shall try to load the image from twitter.
  • if loading from twitter is successful, show that image instead of the placeholder
  • if that function fails (i.e. time-out or error message from twitter) the function must try to load an alternative from the loklak_backend
  • if the back-end returns an image, show that image instead of the placeholder.
  • if the backend does not answer (time-out or http error status code) the function just terminates and does nothing (the default image stays in place) or if an alternative is returned, it is displayed

The request to the back-end must contain the screen_name of the user.

Research twitter wall designs

The twitter wall was on display yesterday at the OpenTechSummit. Lots of people added content, because they saw the wall. We now need to improve the design, e.g. text was too small for the wall. Please research how other twitter walls display tweets and post links and screenshots of twitter walls here.

loklak icon in top left menu corner

Please add the yellow loklak icon to all the web pages into the main menu line at the top left position.
Please use (one of) the following graphics (copy it from there):
https://github.com/loklak/loklak_server/blob/master/html/artwork/loklak_icon_yellow_64x64.gif
https://github.com/loklak/loklak_server/blob/master/html/artwork/loklak_icon_yellow_64x64.png

The image should be clickable and should point to http://loklak.net (to that domain, not the relative root path /)

Render unfiltered results for Search Frontend

  1. Normal tweets without links or pictures #64
    • Avatar, Screen_name, tweet's age X
    • Onclick: show created time, full date, and Detail (to open tweetlink) X
    • Action list: Reply, Retweet, Favorite, More (Copy link, Embed tweet) X
  2. Tweet with images: #64
    • For a single image, if size is bigger than 506 x 203 create a thumbnail of 506 x 203 X
    • With multiple images, create multiple thumbnail baseds on the size of the images X
      since maximum no of images is 4. Size of compilation would be 506 x 203. The layout according to twitter search should be
      • For 2 images: 50 50
      • For 3 images: 50 | 25 / 25
      • FOr 4 images: 25 / 25 | 25 / 25
    • Regardless the number of images, there's always a view photo action X
      • If a thumbail for a single image was shown before, show the rest of the photo
      • If multiple thumbnails was used, show more detail like normal tweets
      • After view photo is click, a click on images result in a modal.

Create a time histogram widget

The context of this feature is described in https://groups.google.com/d/msg/loklak/7azwyuslmTU/JXh0vrgXhSAJ

The framework page for this feature is created with #9
There should be a widget which shows the date histogram that is delivered by the loklak_server backend using calls like http://loklak.org/api/search.json?q=spacex%20since:2015-04-01_17:10%20until:2015-04-23_18:20&source=cache&count=0&fields=created_at,screen_name,mentions,hashtags&limit=6&timezoneOffset=-120

The histogramm data in the json of the call to the api can have steps: by-minute, by-hour or by-day. The histogram graph dimension names should reflect that. An easy approach to realize this can be morris.js to render the histogram. D3.js would be more flexible but also more difficult to use.

message_evaluation_sketch

A very nice feature would be a date slider at the border of the histogram to move the date zones, i.e. shrink them. This would make it possible to omit the time input fields for the search page.

clone the search interface to a new view, called "wall"

following the steps to the new milestone at https://groups.google.com/forum/#!msg/loklak/7azwyuslmTU/q9ueCSgwjZUJ
there is a preparation step necessary to be able to simultanously work on the twitter wall and the search interface: clone the "search" view to a "wall" view.

This looks like a simple thing to do, still I want to mention it to prevent irritation wether or not the existing search interface is to be extendet. It should not. "search" and "wall" shall evolve separately (while they can re-use code for each other)

This has Prio 1 because it's the first thing to do.

Show statistics in the wall

A toggle should control the display of a statistics view which would appear in a sidebar. Will contain "top twitterers", "top mentions", "top hashtags" and a histogram(if possible).
From #37

debian installation problem

on debian 7.8 I get:

gulp dev

Error: Cannot find module 'readable-stream/transform'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/loklak/loklak_webclient/node_modules/gulp-util/node_modules/through2/through2.js:1:79)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

thats on the root server for loklak.net

Loklak Projects - Tweets, Wall, Search frontend

This is a plan for summer projects for each student. Please provide input and feedback.

Project 1: Loklak Tweets (Sudheesh) - Goal of this project is to fully develop the functionality to tweet on loklak and set up loklak as a twitter app (so, we can tweet on both platform). Also implement additional features including adding attachments (images, videos, maps, location data, code e.g. pastebin like).

Project 2: Twitter Wall Frontend (Aneesh) - Implement a fully functional twitter wall and follow design patterns and functionality of existing twitter walls, e.g. http://tweetwall.com, http://www.tweetbeam.com/show?query=loklak, Also refer to #52

Project 3: Search Frontend (Phuc) - Implement a search frontend and start development by implementing features of the twitter search. And, we would like to see additional functionality for search in further miltestones.

Feature Project (Julian/Michael): Implement authentication for loklak and enable loklak to become a twitter app.

Please start to work on your project by writing down a list of features and then adding issues with the respective labels

get attributes in URL for search result page

I would like to see the query attributes (including time zone offset) in the get- attribute values of the url. That means a search result page path should look like

/search?q=untersuchungsausschuss&timezoneOffset=-120

The reaso for such a feature is, that it must be possible to bookmark a loklak-Address or send it around with other media (like email etc) With the current search page, this is not possible.

Please make the servlet name exactly as given above, it should be names 'search'.

related feature: #7 because the welcome page should have a different url path than the search result page.

ERR! thrown in npm install, protocol errors and png-crush binary

I am working behind a corporate firewall that blocks SSH and GIT:// protocol, but I can work with https://
As I was setting up this project I've noticed the following errors,
https://github.com/loklak/loklak_webclient/blob/master/package.json#L48&L54

npm ERR! git clone git://github.com/douglasduteil/isparta Cloning into bare repository '/Users/sudheeshsinganamalla/.npm/_git-remotes/git-github-com-douglasduteil-isparta-60a3da0a'...
npm ERR! git clone git://github.com/douglasduteil/isparta fatal: Unable to look up github.com (port 9418) (nodename nor servname provided, or not known)
npm ERR! git clone git://github.com/douglasduteil/karma-coverage Cloning into bare repository '/Users/sudheeshsinganamalla/.npm/_git-remotes/git-github-com-douglasduteil-karma-coverage-abcb3516'...
npm ERR! git clone git://github.com/douglasduteil/karma-coverage fatal: Unable to look up github.com (port 9418) (nodename nor servname provided, or not known)
npm ERR! Error: Command failed: Cloning into bare repository '/Users/sudheeshsinganamalla/.npm/_git-remotes/git-github-com-douglasduteil-isparta-60a3da0a'...
npm ERR! fatal: Unable to look up github.com (port 9418) (nodename nor servname provided, or not known)
npm ERR!
npm ERR!     at ChildProcess.exithandler (child_process.js:637:15)
npm ERR!     at ChildProcess.EventEmitter.emit (events.js:98:17)
npm ERR!     at maybeClose (child_process.js:743:16)
npm ERR!     at Process.ChildProcess._handle.onexit (child_process.js:810:5)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/sudheeshsinganamalla/Documents/loklak/loklak_webclient
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code 128

Many universities with a proxy system block the SSH protocol for safety, the best would be to go with git+https://. The above errors can be removed by simply moving to this. Moving to this fixed most of the problems but at the same time, it still results in an ERR for

npm ERR! [email protected] postinstall: `node lib/install.js`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is most likely a problem with the pngcrush-bin package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node lib/install.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls pngcrush-bin
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/sudheeshsinganamalla/Documents/loklak_GSoC/loklak_webclient
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code ELIFECYCLE

Leaving this aside, running gulp dev results in server running at 3001 and looks as follows
screen shot 2015-04-30 at 5 59 06 pm

Has this setup correctly or is there something that's missing ?

Create a getting started view for the wall

This view will contain all the options and customizations that can be used to create a wall.

Options offered are:

  • Name of the event
  • Date of the event
  • Main hashtag
  • Additional hashtags, keywords or @users
  • Choice of 4 base layouts: list, masonry, or centre of attraction with tweet
  • Choice of wall with (tweets with and without images)/(tweets with no images)/(tweets with images)
  • Customization of wall colour

Will also contain a basic preview of what the wall would look like.

Statistics page display only after second click on 'Search'

The statistic page does not load upon first click on 'Search', only on second.
Steps to reproduce:

  • open /statistics
  • enter a search term, a start date and a end date
  • click on 'Search'
    -> effect: the url changes (good!) but no statistics is shown (bad!)
  • don't change any settings and simply click a second time on 'Search'
    -> effect: the statistics are shown

..should show when the first time search is clicked.

Error in isparta installation from repository, broken tests/*

During installation I encountered the following error for isparta

npm http GET https://registry.npmjs.org/babel-core
npm http GET https://registry.npmjs.org/escodegen
npm http GET https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/lodash.partial
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/source-map
npm http GET https://registry.npmjs.org/nomnom
npm http 304 https://registry.npmjs.org/babel-core
npm http 304 https://registry.npmjs.org/which
npm http 304 https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/lodash.partial
npm http 304 https://registry.npmjs.org/escodegen
npm http 304 https://registry.npmjs.org/nomnom
npm ERR! notarget No compatible version found: nomnom@'douglasduteil/nomnom#next'
npm ERR! notarget Valid install targets:
npm ERR! notarget ["0.1.2","0.1.3","0.2.0","0.3.0","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.6","0.4.8","0.5.0","0.6.0","0.6.1","1.0.0","1.5.0","1.5.1","1.5.2","1.5.3","1.6.0","1.6.1","1.6.2","1.7.0","1.8.0","1.8.1"]
npm ERR! notarget
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "git+https://github.com/douglasduteil/isparta"
npm ERR! cwd /Users/sudheeshsinganamalla/Documents/loklak_GSoC/loklak_webclient
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code ETARGET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/sudheeshsinganamalla/Documents/loklak_GSoC/loklak_webclient/npm-debug.log
npm ERR! not ok code 0

It also fails doing it directly from npm using npm install isparta

npm http GET https://registry.npmjs.org/isparta
npm http 200 https://registry.npmjs.org/isparta
npm http GET https://registry.npmjs.org/babel-core
npm http GET https://registry.npmjs.org/escodegen
npm http GET https://registry.npmjs.org/esprima
npm http GET https://registry.npmjs.org/lodash.partial
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/nomnom
npm http GET https://registry.npmjs.org/which
npm http GET https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/escodegen
npm http 304 https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/esprima
npm http 304 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/which
npm http 304 https://registry.npmjs.org/babel-core
npm http 304 https://registry.npmjs.org/lodash.partial
npm http 304 https://registry.npmjs.org/nomnom
npm ERR! notarget No compatible version found: nomnom@'douglasduteil/nomnom#next'
npm ERR! notarget Valid install targets:
npm ERR! notarget ["0.1.2","0.1.3","0.2.0","0.3.0","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.6","0.4.8","0.5.0","0.6.0","0.6.1","1.0.0","1.5.0","1.5.1","1.5.2","1.5.3","1.6.0","1.6.1","1.6.2","1.7.0","1.8.0","1.8.1"]
npm ERR! notarget
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "isparta"
npm ERR! cwd /Users/sudheeshsinganamalla/Documents/loklak_GSoC/loklak_webclient
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code ETARGET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/sudheeshsinganamalla/Documents/loklak_GSoC/loklak_webclient/npm-debug.log
npm ERR! not ok code 0

Not having this breaks gulp test and gulp unit, Is there a workaround ?

feature: Jumbotron welcome page

There must be a simple index.html welcome page which shows on the first view what loklak is able to do.
The idea is:

  • show a histogram of the tweet history to prove that we are capable to evaluate a huge number of tweets.
  • show a search box so the user knows that it is possible to search all that data
    The histogram is currently a kind of second step and is not necessary for a first version of the index.html
    What we need is:
  • a header line 'loklak twitter evaluation' (may be changed later)
  • a placeholder for the histogram (possible an image, just link to non-existing image, I will replace that)
  • an input box for the search

The input form must provide the timezoneOffset attribut, please look at https://github.com/loklak/loklak_server/blob/master/html/index.html line 73 how to do that.

Create a statistic table widget

The context of this feature is described in https://groups.google.com/d/msg/loklak/7azwyuslmTU/JXh0vrgXhSAJ

The framework page for this feature is created with #9
There should be a widget which shows the three top-windows in the following example:
message_evaluation_sketch

Data is delivered by the loklak_server backend using calls like http://loklak.org/api/search.json?q=spacex%20since:2015-04-01_17:10%20until:2015-04-23_18:20&source=cache&count=0&fields=created_at,screen_name,mentions,hashtags&limit=6&timezoneOffset=-120

The widget must be given a field name and possible a coulouring setting so it would be possile to change it's style a bit.

loklak Tweets - compose tweets with new rich content attachment categories, e.g. embedded maps or code with loklak

This is an umbrella feature for the project definition in #61
The idea is, that users like to tweet rich data but don't have support for such attachments from twitter. Examples are:

  • identify and attach exact geographic coordinates and maps
  • attach video and/or audio content
  • attach larger texts with simple markdown (i.e. https://guides.github.com/features/mastering-markdown/) as used in github or maybe wikitext, code citations (with code pretty-print) and other typical text rendering
  • attach better images (i.e. animated gif or images with EXIF data attached)

Tweets with such attachments shall be stored within loklak with full rich data but will also be cross-posted to twitter with their metadata attached in an 'encapsulated' form (i.e. geographic data as OSM maps with engraved coordinates or large markup-texts as attached images etc.) Details will be explained in sub-features.

This feature has an important requirement: authentication of the user and using loklak as twitter app. Because this is not available right now, we will start to implement these features without cross-posting and add that later.

Details will be defined in sub-features

Some profile pictures on search query throw 404 errors

An example URL is as follows
https://pbs.twimg.com/profile_images/586512026672893954/WNMdBaR0_bigger.jpg

Even when separately opened, the browsers shows a broken image, but on the same tab, the favicon shows the 16x16 version of the profile image.

screen shot 2015-05-10 at 4 25 15 pm

feature: "About" menu item

For the first going public we need a little it of in-app description. The minimum would be a single About menu entry in the top menu bar. Please create a About web page which is opened which clicked on the about menu entry. Please fill the page with 'lorem ipsum', I will fill it with an actual description.

refresh the timeline in the wall

This feature is part of the milestone target at https://groups.google.com/forum/#!msg/loklak/7azwyuslmTU/q9ueCSgwjZUJ
Because this feature changes the content of the top-tweet, it is based on the feature #32

The wall shall re-load itself. The refresh period shall be based on the number, given in the search result json search_metadata.period which is the average time between tweets in milliseconds. The refresh time shall be
20 seconds if period is > 30000
0.7 * period if period is <= 30000
5 seconds if period is < 7000

An update period below 5 is very rare and we don't want to put the scraping frequency on twitter too high.

The refresh method must compare the previous list with the new one and identify the number of tweets which are new. For each new tweet, there shall be an update animation:

  • replace the top tweet by the new one
  • add the previous top tweet to the timeline below, which shall be moved smoothly downwards
  • wait at least three seconds before doing this again with the next new tweet.

Implement the base layouts in the wall

The base layouts are:

  • list: linear, similar to search results
  • masonry: a stacked view in which tweets are arranged in a brick like structure
  • centre of attraction with tweet stream: the latest tweet occupies a large area of the screen, with a smaller section for older tweets

Create a framework page for message evaluation widgets

The context of this feature is described in https://groups.google.com/d/msg/loklak/7azwyuslmTU/JXh0vrgXhSAJ

There should be a framework page for histogram and statistic table widgets. The feature requests for these widgets are in separate issues. The result should look like:

message_evaluation_sketch

To get to this page, the user must be able to enter a search term, a start date and an end date. The back-end retrieval api needs also a timezoneOffset, which can be retrieved from the browser with JavaScript. The input box to enter a search term and the dates should be on the same page as the result graphics. Please use the path /eval.html?q= with similar attributes like the search page.

feature: search url with query in path

It should be possible to mention loklak with links to search result pages. Therefore the search result page must be called with http-GET containing submitted attributes in the url as properties.

The twitter search page is at /search, we could use the same path. Lets use urls like
/search?q=fossasia&timezoneOffset=-120

Underlying Angular infdig error on multiple searches.

The search url works fine. When you search for a term, the url will be updated according to the term (so then we can share the link).

image

The new statuses are updated, but there a short flickering when loading, caused by Error :[$rootScope:infdig]

Refer to #48 for the original pull request and how to reproduce the error.

feature: custom settings

settings are currently inside app/js/constants.js
When this setting is changed, then it is overwritten with next git pull.
Is it possible to have a custom setting file which overwrites constants.js, like i.e. an additional file data/settings/constants.js which is not in git?

all designs must display properly in very low resolutions, i.e. 1024 × 768

When we first started the wall at ots15, the available screen resolution for the projector on a VGA cable was very limited. The wall was very messed up, full of window sliders and images moved below other design elements. This is a typical situation that you encounter when using unknown and possible old hardware during conferences. Therefore I believe its important that we have a general rule, that all designs must fit into 1024 × 768 and still look beautiful!

This means, this feature will constantly apply to all html pages that you design! For each designed page, follow the following steps:

  • set your screen resolution to 1024 × 768 or re-size your browser window to that size
  • test the web page and identify all bad behaviour (i.e. sliders where no should be, invisible text parts, bad formatted images etc)
  • fix all cases, where this test fails on your own!

ps: never close this feature!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.