Git Product home page Git Product logo

ecency / esteem-surfer Goto Github PK

View Code? Open in Web Editor NEW
101.0 15.0 30.0 15.99 MB

Ecency desktop formerly known as Esteem Surfer - reimagined desktop social wallet, contribute and get rewarded (for Windows, Mac, Linux)

Home Page: https://ecency.com

License: MIT License

HTML 0.64% JavaScript 82.41% Shell 0.02% SCSS 16.53% Less 0.40%
esteem desktop blockchain mac windows linux crypto electron cryptocurrency rewarding

esteem-surfer's Introduction

This is Legacy version new version is available here: Ecency desktop



Esteem Desktop – Hive Desktop Client

πŸŽ‰ This is the complete source code and the build instructions of the Hive blockchain desktop client Esteem Desktop founded by Feruz M and Lead Surfer Talha, supported by Esteem team and vast Hive community contibutors.

Preview of Esteem Desktop

What is already implemented

  • Surfing your feed and trending/hot stuff
  • Creating new posts
  • Commenting
  • Voting with any %
  • Reading replies/comments/mentions
  • Drafts synced with Esteem Mobile
  • Post Schedules synced with Esteem Mobile
  • Bookmarks synced with Esteem Mobile
  • Favorites synced with Esteem Mobile
  • Comments/Memo Encryption
  • Night Mode (Dark Theme)
  • Wallet Transfers
  • Image Gallery
  • Detailed Voters Info
  • Witness Voting

More functions are coming!

Supported systems

  • Windows XP - Windows 10
  • Mac OS X 10.6 - Mac OS X 10.15
  • Ubuntu 12.04 - Ubuntu 19.10
  • Fedora 22 - Fedora 24

Build instructions

Requirements

  • node ^6.14.0 || ^8.10.0 || >=9.10.0
  • yarn

Clone

$ git clone https://github.com/eSteemApp/esteem-surfer
$ cd esteem-surfer

Install dependencies

$ yarn

Create a dummy config.js

This is for the backend server configuration. Actual server addresses are not needed for most functions.

$ cp app/config.example.js app/config.js

Run in development mode

$ npm run dev

Package

$ npm run package

Test

$ npm run test

esteem-surfer's People

Contributors

dependabot[bot] avatar economicstudio avatar feruzm avatar fildunsky avatar talhasch 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

esteem-surfer's Issues

Add search field in Tags list

There is an api to search Tags which can be utilized here

This Search will most likely be turned into full-fledged content search and filtering. We can remove Search from Header/Navigation Menu

Changelog automated window/page

After initial release and #11

we can have changelog page similar to bottom image

where user gets information about changes, all data can be fetched from backend (images and content can be controlled and app can pull data if there is new entry) or something similar, better approach if you have any thoughts on this, let me know @talhasch.

EI: Voters info page

  • improve sorting not only by time but by reward received, author name, etc. as well
  • add $ or other selected currency value of each vote

EI: Escrow Actions

image

Bottom of this page, we should show outstanding escrow transfers from eSync. ratification and expiration deadlines can be used for fetching future dated/outstanding transactions

Arch Linux distribution support

.aur or .pkg builds for Arch Linux users, also some npm packages are not fully supported. When user tried npm install number of libraries fail to install due to lack of support

Discover Page - improvements

Similar to this screenshot, let's have Discover Tab to allow anyone to find some interesting users. List of users can be taken as we talked before 20 posts authors from Hot/Trending

image

Contacts or autofill on transfer pages

have contact list or autofill on transfer pages, when user starts typing or focus on input, there should be recommended list of contacts/friends to quickly select or search without typos...

Post refresh

After post updated, content doesn't refresh... either have refresh button and/or force update local cached version after update

Couldnt install, error by npm [!] 9 vulnerabilities found

Got the following issue when trying to run npm install

> [email protected] postinstall /home/jza/Downloads/esteem-surfer-1.0.0
> electron-builder install-app-deps

  β€’ electron-builder version=19.56.2
  β€’ loaded configuration file=package.json ("build" field)
  β€’ no native production dependencies
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 8.633s
[!] 9 vulnerabilities found [6889 packages audited]
    Severity: 8 Moderate | 1 Critical
    Run `npm audit` for more detail

OS is ArchLinux

Marketplace page

For alpha release this will be just list of apps and tools eSteem provides.

Later, we will add different sections like Bots, Delegations, Goods, Services, etc.

XSS vulnerability tests

In case if some content has xss scripts, app should always filter out those to give best security.

Reading experience

image

Safari has reading mode for most websites, wikipedia as an example. Let's discuss if it makes sense to have similar styling, although medium.com, steemit.com and Surfer is quite good without any styling as well

Opening Draft tag issue

Tags are separated by space but on Draft backend they are saved with ,, when opening draft to editor please make sure to remove , and replace with space

Auto update feature

Whenever there is new release on this repo, app should be able to notify user to update app... possibly on footer saying, there is new release available, please update asap.

Fallback thumbnail image

A thumbnail image is needed in order to put on post lists for images could not loaded due to a fault (network error etc.)

I use this one temporarily:
noimage

But it is not fit to image place:

unnamed

Image place size is 130x77px

And "hmm, no image" text is not semantic for this use. Something like "image could not loaded" would be more meaningful.

@fildunsky @feruzm

Relevant posts

Between post body and Comments section, add Relevant posts section where 3-5 posts are featured which has similar tags and content that might interest readers.

External links with icon

Having similar icon if content has external link would be perfect to give user a notice before attempting to open link

screen shot 2018-03-11 at 4 08 01 pm

Trollbox or live stream chat Tab

I would love to have public trollbox where anyone can just open up and start posting and join conversation.

Trollox obviously need moderators (mods) (can ban, mute, or kick users temporary (1h, 3h, 7h, 12h, 24h, 7 days, etc. from trollbox)
And shouldn't allow any links, except stickers

examples:
1.

2.

3.

Add app info in feed

image

each posts have json_metadata with field of app: 'esteem/1.5.1' or app: 'steemit/0.0.1' or app: 'busy/0.1' etc. showing from which app it has been posted, please parse them and show similar to above image, if no app section exist don't list any. either show them with version or without just app name should be sufficient.

Surfer issues/suggestions

  • Double click to select filter (trending, hot, etc.)
  • Profile name on avatar menu
  • Night mode [within 2 weeks after alpha release]
  • Comment sorting
  • Transfers page completion with/without delegation, [Delegation within 3 weeks after a.release, outgoing getVestingDelegations (api) and incoming delegations of account (esync)]
  • Steemconnect issues, which I hope you will write some details, double check login issues [included]
  • Escrow backend search fix(edited)
  • Comment hiding if reputation and net_rshares is negative (check steemit where comment/post is blurred out) [within 2 weeks after a.release]
  • Token Exchange minimal (chart and current market info STEEM, SBD, BTC prices
  • Welcome page [included]
  • Loading page example: http://g.recordit.co/W1WQsR7cqa.gif [included]
  • FAQ footer link: esteem/good-karma/esteem-faq-updated-e2baacf0a8475
  • About footer link can be similar to about page of mobile or link to homepage (https://esteem.ws)
  • In profile page of each user add Feed section, showing their feed (post from their followers)
  • Favorites feature (favoriting authors/accounts), check mobile source code for backend api
  • Voting on post doesn't update payout/votes etc. values [bug, included]
  • Post votes numbers are different compare to Steemit?! [bug, included]
  • Activity tab on profile page of logged in user, API is available on mobile for each section, in process of being improved [included]
  • PIN code setup [included]

Faster Post loading

Just to keep note of future improvements:

getState currently gets all the data that is required for each post, but it has downside, processing large data can take time and resources, especially if user's computer is old...

alternative solutions would be to, keep post.body in posts.js and pass it on post controller OR use getContent first and then process getState async in background while user reads content...

Post images placeholder/lazy load

  • Posts that has many images, sometimes loads slow due to images which is understandable, perhaps we can have placeholder while image is loading or have loading or use similar technique as here: https://jmperezperez.com/svg-placeholders/...
    another option is to use smaller size and after load make it full sized:
    this image
    https://steemitimages.com/0x0/https://image.ibb.co/g6Y3o7/IMG_1262.jpg
    can be modified as or ratio 2x, 4x smaller
    https://steemitimages.com/200x200/https://image.ibb.co/g6Y3o7/IMG_1262.jpg

  • User avatars can also use similar approach, I think by default medium size is chosen
    https://steemitimages.com/u/talhasch/avatar/small
    https://steemitimages.com/u/talhasch/avatar/medium
    https://steemitimages.com/u/talhasch/avatar/large

Discover page causes crash

After few refresh Discover page causes crash on Windows machines

I couldn't reproduce this on Mac and Windows,

  • need double check to make sure there is no memory leak
  • after few refresh list doesn't randomize anymore, use New/Created feed as well to increase randomness

Basic notification system

Activity manager will use our backend database

also please use this issue to discuss best ways/practices to deliver push notification to desktop users

Issues and Suggesstions

Suggestions

  1. implement "favourite" feature like the one of the mobile App

  1. Word counter feature when typing articles

  1. Article details for readers (total words, mins to read)

  1. Add a voice reader

  1. Display SP instead of Vest in wallet details

  1. spell checker

  1. user should see link when they hover over it before clicking to avoid dangerous/misleading links

  1. Insert images by dragging & dropping, pasting from the clipboard, or by selecting them

  1. ~~Looks nice! Unfortunately it has no settings to change the font size or to [Ctrl]+[+] to zoom in like a browser. My eyesight is poor so I can not use it without changing display settings to a lower resolution.~

  1. user modemser62:
    On the settings, everything is too small you may use the entire vertical space on the screen to expand the feed and new posts should be in the middle and have attached hot trending etc
    To expand the app to widescreen optimization for displaying the content.
    to try to help videos to pop up like on busy.org or better.
    music is nonexistent probably when you get a search to be able to tick a box for what you need video or music and to make this also an option in the client search for music search for video and explore trending hot etc

  1. ~~flag 🚩 in comments~

  1. Potential payout for both posts and comments should be implemented steem.supply has this, suggested by @horpey

  1. regarding the delegation on wallet, many people find it hard to delegate and to check their delegation details, I suggest there should be a layer where user can easily delegate and check their delegation details
    suggested by @horpey

  1. ability to block spammer users posting links;
    filter some users comment: implement an option for users to filter out specific user comment. there are some spammers who like to spam comments with links… , if they are filtered/ blacklisted out, users who filtered them won't see their useless comments.

    suggested by @horpey

  1. rapheal on discord: community manager of warex suggested:
    Can we have dlive, dtube, dsound and a web browser all integrated into the esteem platform?
    To my on view: Since eSteem is an hybrid App/Software(Browser and System or Mobile API), I suggest, if we can integrate browser so users can navigate to their specific url or there should be a panel/page where links of trusted platforms built of Steem (such as dlive, dtube, dsound, dmania) will be listed and if any user click on any of those links, it should take them to the site within eSteem surfer. With this suggestion, users will get obsessed by using eSteem surfer as there favorite browser

Issues

  1. when a link is used as location on profile, the link is not clickable

  1. ~~clicking username from Upvote List(Voters info) does nothing~

  1. it does not support all fonts
    This desktop version isn't support myanmar font.

  1. reblog icon missing

  1. ~~upvote button not working as it should~

  1. The UPVOTE function (self-vote) in the Surfer 1.0.0's editor doesn't work. So when I hit the small box the vote is not allocated then.

  1. ~~conversion to local currencies for expected post payouts? I ask because when I compare the figures I see in GBP to what I would expect based on the figures I usually use at steemstats.com - they don't match up😊😊😊.
    I added to this, regarding the list of currencies, STU should be an option instead of USD (STU should replace USD) because this displays Steem Token Unit instead of the precise value in USD, added USD should show the post payout regarding the present value of steem and sbd for example if a post has 10STU as the post payout, USD should display the value in $, [10STU 75% for author and 25% for curator will give 7.5 for authors and 2.5SP for curators, now 7.5/2=3.75 this will give 3.75 in SBD and 3.75 in SP but SP are rewarded base on value of steem, here let's assume the value of SBD to be 2$ and Steem to be $3. This will be 3.75/3 =1.25 now the user will get 3.75SBD and 1.25SP with the present value in dollar user will get (3.75Γ—2 and 1.25Γ—3 = 11.25$) the curators reward is 2.5SPΓ—3=$7.5. So the value to display in USD for a post payout of 10$ will be $18.75 and it will show author rewards: 11.25$ and curators reward: 7.5$]~

  1. a user complained that, as soon as he closes eSteem Surfer, it gets uninstalled and he has to re-install to use surfer again @cambridgeport90 -user on eSteem discord channel

URL scheme and deeplinking

As a desktop application, eSteem Surfer should have support for steem:// url scheme.

for example:

steem://@username/permlink opens post
steem://@username opens profile of user

and any other possible combination, mainly get requests for now, later we will work on post queries to submit transaction to the blockchain and their schemes, popup screen to perform/confirm any action quickly

Copy post link or share post buttons

  • Have share/copy icon bottom of each post to get steemit/busy link
  • Share post to Reddit, Twitter, Facebook popup or system browser popup
  • Have copy link in Post lists (Feed and Profile pages)

copy internal link can be formatted same as steemit.com

[this is title](/@good-karma/esteem-surfer-1-0-0-release-79775e065812d)
or this style
[this is title](/esteem/@good-karma/esteem-surfer-1-0-0-release-79775e065812d)

to check put above on steemit editor, it will link it internally

so we could do same and allow link sharing as copy post link and it would copy like above
so if I am writing new post, I can copy post link to editor and copy post link can be added here, smaller dots of course

on top right of each post list item, on post list as well as profile blog lists

Dropdown and header menu

  • Filters as dropdown, mouse hover opens the list of filters Trending, Active, Hot, etc.

Rest of header menus

without login

  • Token Exchange - exchange

  • Market Place - list of services and apps for purchase, bots, etc. (upcoming)

  • Explorer, where Search results will also go

with login there will most likely be User avatar and dropdown with following pages

  • Profile

  • Wallet

  • Bookmarks

  • Drafts

  • Gallery/Images

  • Notifications/Activity manager

Search bar, Settings will stay and Logout will change to User Avatar or Login depending on state.

Implement Delegation

Delegation is shown in Wallet page with (+/-) amount

In Wallet page breakdown delegations (most likely with tooltip)

  • Outgoing getVestingDelegations (api) and incoming delegations of account (eSync)
  • Delegating some percent/amoun of SP to another user, reset delegation, etc.

Connect to Mobile

Think about tab (after Wallet item) in profile page where it can offer QR code and/or quicker ways to connect account to eSteem Mobile

image

Profile page bug/improvement

When opening own profile follow and mute buttons should be replaced with Edit button to change user details...

When opening other user's profile, should have follow, mute and favorite button (see latest mobile release with relevant API)

@ura-soul report

Bugs / Feature Suggestions

Being that this is just version 1 of the app, there are a few bugs and things missing from the functionality that will be quite easy to fix. Here's a few that I have seen:

  1. There's currently only a single button in the text editor to insert a single hash symbol for a level 1 heading... It would be much better to have multiple buttons, one for each heading size.
  2. Keyboard shortcuts for text formatting don't work in the text editor. It would be great to be able to use standard shortcuts such as Ctrl+i to set text to italic.
  3. The calculation used to convert post payouts to other currencies, such as GBP or USD is incorrectly assuming that the market price of SBDs is 1USD, which is clearly incorrect and so the post payout figures in Surfer are wrong. I spoke with @Good-Karma about this and pointed him to steem.supply, which has a good explanation of how to correctly convert projected post payout values into real world fiat values.
  4. There is currently no way to upload images via the interface, I can only add an image that is hosted elsewhere. It would be ideal if Surfer could upload images to the image hosting used by steemit.com.
  5. Clicking 'save' for a draft more than once, results in new drafts each time. This is not the expected behaviour, as in every other app doing this would result in the saved version of the current draft being updated, not a new draft (copy) being created.
  6. Tooltips over the shortcuts next to the text in put field would be nice.
  7. If I upvote posts I can only upvote at 100%, there is no slider for lower percentages.
  8. If I unvote a post, the value for the post payout and also the number of votes for the post are not updated (reduced).
  9. There is an option to view 'Leaderboard' activity which shows users with a number / score next to them, but I have no clue what this refers to. More descriptive information is needed there.
  10. I have not yet seen any kind of realtime notifications in the app, such as for replies or upvotes - that would be great.
  11. The 'Discover' page is a bit odd in that it includes people I am already following so I can't really 'discover' them. Also, when I click on the user images on that page, nothing happens, even though the cursor turns to a hand.
  12. If I search for my username in the search tool, I see myself in the list of profiles at the top, but the actual list of posts that appears underneath contains nothing by me or that mentions me.. soo.. it's not very useful!
  13. Adding a new line in the text editor does not always result in a new line being visible in the preview (and presumably in the finished post. I have had to add BR HTML elements in a few places to get the spacing right. Steemit.com does not have this issue.
  14. It would be great to be able to see the global URL for the post once it has bee posted to the blockchain. If I want to link people to my post in comments, I'm not sure how to get it's address to point them to it).
  15. The scheduled post I made did not actually post and I had no notification that it didn't post. When I converted it back to a draft, the list of tags had been changed so that commas were in the tag list instead of spaces.

Font size issues

Consider adding font size change or allow zooming in content part of app (not navigation)

Markdown issues

Will be updated with new list item when new issue is found

  • Markdown is not recognized here: screen shot 2018-03-16 at 9 44 19 pm

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.