Giter Site home page Giter Site logo

pepyatka-html's Introduction

Pepyatka

Pepyatka is an open source FriendFeed clone. Basically, this is a social real-time feed aggregator that allows you to share cute kitty photos, coordinate upcoming events, discuss any other cool stuff on the Internet or setup a private Pepyatka instance in your company.

How to install

  1. Build and run Server. Your server should be running on http://localhost:3000/ now.
  2. Build and run HTML Client. Open http://localhost:3333/ in your browser.
  3. (optional) Build and run iOS Client

Deployment

  1. Check out instructions

pepyatka-html's People

Contributors

berkus avatar claudioc avatar clbn avatar cmarat avatar davidmz avatar epicmonkey avatar hsw avatar indeyets avatar innin avatar kappa avatar n1313 avatar nek avatar nstawski avatar slider23 avatar yole avatar

Stargazers

 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

pepyatka-html's Issues

Prepare Howto advanced search page

Though it's said nowhere, current search implementation allows doing advanced queries, like:

  • intitle:hello AND world
  • incomments:world from:epicmonkey
  • ABC OR CNN

This issues is to document this as a static page.

Custom profile pictures

Following up on pepyatka/pepyatka#20 we need to allow users to upload custom profiles images. In the settings there will be a new link: "Change picture" that opens a page with a file field, submit button and if there is already an uploaded image, user can remove it.

Images are automatically resized to (a) 75x75, (b) 64x64 and (c) 32x32.

(a) is used on settings and a post pages
(b) is a generic and most used profile picture, e.g. posts page, email notifications, etc
(c) reserved for a future

Expander helper is broken (prettifyText function)

This commit pepyatka/pepyatka-server@d2ee9e3 extracts text style functions to a boundHelper, however this introduced a regression: expander is a javascript library that trims text to X symbols/words and injects hellip that allows user to expand this text if she wants. The problem is bound helper returns just html without javascript associated with it, so if we apply expand fn there user won't be able to run javascript and see entire text.

Authorize users prior subscribing them to feed/post

Right now this is not a security issue as we do not have any private feeds, however in the future we must be doing authorization on "subscribe" event:

  • authorized user is a user who is in the list of subscribed users
  • public feed bypasses authorization.

Otherwise user can subscribe to any feed and receive new posts and comments in real-time even she does not have an access to that feed.

RequireJS and cache

Issue by epicmonkey
Tuesday Nov 26, 2013 at 21:00 GMT
Originally opened as https://github.com/pepyatka/pepyatka/issues/35


Right now requirejs (r.js -o build.js) generates two minimized files: main.js and common.js the issue is requirejs (build.js) is not configured in a way to prevent browser cache, so sometimes when we deploy updated scripts, users will still see an old pepyatka.

This article http://stackoverflow.com/questions/8315088/prevent-requirejs-from-caching-required-scripts explains how to update requirejs configuration.

Side notes:

  • main.js is a pepyatka brain, it's updated every single time.
  • common.js is an artel with emberjs, jquery, handlebars and stuff. so this script must hit user's cache.

Notify user if post has been deleted

If user A is on a post page and owner B of that post deleted it we need to either redirect the first user A to a home page or let her know that post has been deleted and no longer exist.

Show progress spinner on all ajax requests

We should show gif progress spinner on all ajax requests so a user knows there is a pending action or something. We could catch all ajax requests by using $.ajaxSetup() method that sets global AJAX properties that will apply for the entire page.

$.ajaxSetup({
  beforeSend: function() {
    // show progress spinner
  },
  complete: function() {
    // hide progress spinner
  }
});

Ember-friendly way TBD.

Slide down only new posts.

It's annoying to show posts with a slide down effect when a user loads a page for the first time (e.g. her homepage or public steam) we must be rendering already expanded posts for the first time and apply slide down effect only for new posts on that page.

Pagination loses page number

If there are more than two pages available and a user clicks on "Older items" link, Pepyatka will load older entries however URL won't be changed. As a result if she refreshes a page Pepyatka will lose that page and will render the very first one.

Emberjs has query-params feature available in canary builds (pull request for the reference: emberjs/ember.js#3182, however it's not a part of 1.3 release) and there are instructions how to use it: http://emberjs.com/guides/routing/query-params/.

We can introduce query parameter "page" like it's done in will_paginate Rails module.

Comments block with first and last comments

We should consider doing refactoring of comments block that renders comments, collapsed comments, first and last items. There are already a couple of issues connected to its bad design, e.g. http://pepyatka.com/posts/c810daff-25b8-4f2f-98df-0a0c8e3ff3d6 (or see attached image). Another one is: when user click on "X more comments" link we'll: a) hide all comments, b) apply slide down effect for all of them. Ideally we need to render just X-2 comments and do not touch the first and the last ones.

2d92c3fb-bd2d-47b8-b1b8-17826950b32c

Render 404 page if a user follows a link to an object that doesn't exist

We need to handle situations when a user opens a page with a post that no longer exists (or just wrong url). Keep in mind that 404 pages are required for other objects as well like unknown user and stuff. However let's start from posts 404 page.

As a side note: this was already implemented for prerelease version of ember, however deprecated after migration to stable and latest one.

Separate bootstrap library and theme files

Most likely we'll be changing themes more frequently than core libraries, so it makes sense to cache them. We need to extract bootstrap library and theme files that way there are two css types:

  1. vendor libraries (bootstrap, select2) compiled into one file
  2. our theme (e.g. fresh and helvetica) in separated files

User counters

X likes
X comments
X posts
X subscribers
X subscriptions

Show date when group was updated

Show date when a group was updated like it's done in FrF (e.g. December 30, or if it is updated less than week ago show weekday Thursday).

groups

Show two last comments

If comments block is collapsed and application renders a new comment, it should be rendering two last comments instead. Also connected to #50 and #52.

Terms page

Prepare page that describes "Usage license" and "No warranty and limitation of liability".

User can change her password

On a settings screen we can introduce a new link "Change password" that will open a new page with three fields: Current password, New password, Confirm password.

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.