[1Ramp] #WeAreOne Development Update

in #utopian-io5 years ago

cove.png

Repository

https://github.com/hapramp/alpha-web
https://github.com/hapramp/Hapramp-Android

1. About WeAreOne

#WeAreOne is our initiative to give all creative communities on Steem a dedicated space across 1Ramp platform (Android and Web). We believe that this will make content more discoverable and will allow people to connect with more creators.

To read more about the feature, visit our previous blog - https://busy.org/@the1ramp/launching-weareone-curie-sndbox-travelfeed-and-more-on-1ramp-web-android.

In this update, we will be sharing how our developers @bxute and @singhpratyush implemented the feature in the Android and Web apps.

2. Implementation Details

The #WeAreOne communities are stored in a centralized manner at our backends. It stores different communities and the members for each of these communities.

The backend provides an API to interact with a combination of this data and the blockchain; allowing to carry out all the essential operations.

2.1. Feature Overview

This feature provides a listing of communities which the users can join and see them in their (and other’s) profiles. Users can also browse feeds for the tags associated with the communities. To keep the system flexible, each member is assigned a role when joining the community. For now, this is default to “member” only but later on, this can be used to define moderators, maintainers, etc. for a community.

2.2. API Endpoints

As mentioned earlier, the backend APIs provide various ways to play with the data related to communities and the blockchain.

Here are the endpoints available for the end users from this feature -

2.2.1 Get all communities

GET /micro-communities/

This endpoint lists all the communities present on the platform and with all the data related to it like ID, name, tag, image URL, description and a parent community (interest). The tag is later used to carry out all the major operations related to the community.

2.2.2. Join a Community

POST /micro-communities/{tag}/join

This endpoint requires the 1Ramp AUTH Token for the user as an Authorization header. On success, this community would appear in the user’s profile.

2.2.3. Leave a Community

DELETE /micro-communities/{tag}/join

This endpoint also required the AUTH token. On success, this community would be removed from the user’s profile.

2.2.4. Get Posts for a Community

GET /micro-communities/{tag}/posts/{order}

This endpoint returns posts for the requested order. Pagination is supported for this endpoint -
limit: Max number of posts
start_author: author for the last post in the previous list
start_permlink: permlink for the last post in the previous list

The “order” can be anything from “created”, “hot” and “trending”.

We are planning to add an order option called “voted” in order to fetch the posts that are upvoted by the main account of the community. This would help us in building a better feed for a community.

2.3. Implementation in Web App

The web app fetches a list of all the WeAreOne communities using the API mentioned above. This data is then used to render the “Communities” widget in the right of the home screen.

2.3.1. The Communities Widget

weareone_webapp.png

The data from API is fetched and stored in the microCommunities reducer. It is then used by the widget component to render all the communities. The component is a functional one which fetches all the communities as a one-time side-effect and renders it in a chip-form.

On clicking, the chip redirects to the community page which is an exclusive spot for the community in the app.

2.3.2. The Community Page

The community page has two main components - info sidebar and posts.

All data present in the info sidebar comes from the backend APIs. It contains a button to join/leave the community. On clicking the button, the corresponding backend API is called and then the user state is updated - hence rerendering the required button.

The posts section contains posts for a given community - sortable by Trending, New and Hot. React hooks are used to handle the logic for changing the tabs and calling the corresponding APIs to fetch the posts.

const [tab, changeTab] = useState('trending');

 () => {
   fetchPosts(tag, tab);
 },
 [tab, tag],
);

The second argument here ensures that the APIs are called only when either tab or tag (or the current community) changes. After fetching the posts, it is stored in the redux state from where the component fetches and displays them.

2.3.3. Pull requests

https://github.com/hapramp/alpha-web/pull/88
https://github.com/hapramp/alpha-web/pull/92

2.4. Implementation in Android App

2.4.1 Communities on Home Page

The App fetches community list from our server and renders in a horizontally scrollable list on the home screen.

The list displayed depends upon the currently selected interest.
If a user selects Travel then only communities of travel are shown.

Explore and Feed section we show all the communities in a combined fashion.

A user can tap on any text and navigate to Community Page.

2.4.2. The Community Page

release_assets.gif

While in the home page, app fetches all the community list with all its properties.
On clicking any community, details are passed to Community Page.
This page contains basic details of a given community.
By pressing the Join Button, users can be a part of any community.

2.4.3 Community in the user profile section

comm_home.png

Each user on the 1Ramp app has a customized profile and its publicly available for exploration.
User joined communities are shown in user’s profile section.

2.4.4 Posts of a community

content_discovery.gif

In this basic release of #WeAreOne, we are only showing posts in a separate tab POSTS.
This section contains 3 types of list
Trending | New | Hot
Upon selection, posts are filtered accordingly.

So any user on the platform can browse through posts of a particular community.

With this update in the app, there were a couple of bug-fixes which improves the user experience.

2.4.5. Pull requests

https://github.com/hapramp/1Rramp-Android/pull/251

3. What’s Next?

Communities on Steem are not limited to #tags and posts. There are real passionate teams of community managers, moderators, curators, delegators, and creators behind them. In the next update, we'll come up with improved representation of communities.

3.1. Help us discover more communities and popular hashtags on Steem

Get your community listed

Fill up the above google form and we'll reach out to you to get your community on 1Ramp.

The Internet is noisy and exceptional content is hard to discover. Various community managers and curators on Steem have already taken the hard and ambitious work of discovering and rewarding creators. And we are here to help them by organizing it. More than organizing, 1Ramp is focused on creating tools and features for people to share the creative work they produce in a better way.

If your community (or a specific #tag) belongs to any of the 1Ramp's domains (Art, Dance, Design, Fashion, Film, Literature, Music, Photography, and Travel), you can get it listed on 1Ramp and use this platform as your own, and get the content created by your community featured across all 1Ramp platforms.

3.2. Stay tuned for awesome contests on the platform

Tag Your Fav. Artists on Steem (2).png

Mention Your Favourite Steem Artists in The Comments - #ChristmasGift

We have something very special for you this Christmas. There is an amazing lot of Artists on Steem who keep us all entertained and engaged on the platform. There are musicians, photographers, dancers, designers, storytellers, poets, writers, comedians and so much more.

Christmas is around the corner and what's the better time to give back some love and say thank-you to these amazing people.

It's simple: Just mention your favorite Artists on Steem in the comments section below and we will make cute little custom videos for top 3 Artists. Featuring them and of course, all their fans (you) who mention them.


logo_hapramp_regular@48px.png

1Ramp is a Steem Powered Social Media platform for creators. On 1Ramp, you can join communities of your interest out of the available eight: Art, Dance, Design, Fashion, Film, Literature, Photography, and Travel and earn rewards for sharing your work with the community. We are on a mission to bring all creative communities on Steem in one place where people can collaborate, grow, and inspire.
1Ramp is Available on Google Play and Web.

Join the conversation on our Discord or write us at [email protected]


Twitter | Medium | Instagram | Facebook















Sort:  

That was a great update to read @the1ramp!

The #WeAreOne communities are stored in a centralized manner at our backends. It stores different communities and the members for each of these communities.

Do you think can you push state changes on members/communities to the blockchain via custom JSONs? So, all the data on your backend can be verifiable from the blockchain. (Btw, this data may not required any verification but that's one thing I thought when I read that.)

On a minor note, what you do is kinda similar to Hivemind Communities.


Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thank you for your review, @emrebeyler! Keep up the good work!

Hi @the1ramp!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 2 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 10 SBD worth and should receive 287 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

Hey, @the1ramp!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 63457.41
ETH 3119.12
USDT 1.00
SBD 3.94