okunaorg / okuna-api Goto Github PK
View Code? Open in Web Editor NEWπ€ The Okuna Social Network API
Home Page: https://okuna.io
License: MIT License
π€ The Okuna Social Network API
Home Page: https://okuna.io
License: MIT License
I cannot see all of my own posts in my profile.
We seem to be having an integrity error with the device ids. Might affect notifications.
Would be great to be able to @mention linked people. Meaning people that are following us or we are connected with.
This would prevent people from mentioning and spamming strangers while still be functional within people that are linked to each other.
Be able to upload videos to posts.
The tricky part here is that videos must be processed and this is a resource intensive operation.
We will probably have to build some sort of pipeline for processing and optimising videos.
Right now the reports present several limitations.
There is no way for the original reporter to know the outcome of his report, when filtering reported posts in the timeline, on every query we are checking whether the post has x amount of reports in order to hide it, where this condition can easily be set when a new report arrives and it reaches the threshold, although there is a single status to the overall post report, we are storing it on every single report created by a user.
The way to make this whole thing scalable is to create a higher level model called ReportedPost
which has a many relationship to PostReport
.
This would allow us to quickly filter out posts from the timeline which have a ReportedPost.status=PENDING
without any dynamic calculation. When a new report arrives, we check if the threshold has been met, and if so we change its status from ReportedPost.status=NEW
to ReportedPost.status=PENDING
.
This model can also act as a holder of other relevant information in the report of the post, such as the reason why the moderator approved/rejected it and the actuator of the decision.
Same thing goes for reporting comments and communities.
As a bonus, when a moderator marks the post as REJECTED
, on new reports we can check for this condition. So if ReportedPost.status=REJECTED
and reported posts threshold is original threshold + some new offset. We change the status to ReportedPost.status=OPENBOOK
or such and we know we now have to act on it.
Specially now on alpha/beta stages, would be great if we can be notified when there's something new in a community or person we're following so we don't have to be checking our phone all the time.
Noticed that invited people who did decline the invitation will appear in the list with "invite" behind their names. When I click on a member's "invite" button who aparently declined it wil say I already invited this person. Would it be possible to deactivate that button? On the other hand when he or she would like to be invites on a later time in life this solution would not be good.. perhaps another color of the button? Just to have a better overview of who to invite and who declined and not to invite, but possible after a couple of weeks or so to prevent spam invites. You could also set a max of x invitation requests so spam in this case is not possible at all..
Create a type of communities which can have apart from administrators and moderators... curators.
All posts to this community will be placed on a queue that will be reviewed by administrators|moderators|curators for approval/refusal.
When a community is private, a user should be able to request to join a community.
Ideally there should also be a way for administrators to receive some info with the request, such as why do you want to join or some secret password.
Shouldn't have to explain the why of this one.
The question remaining is what specifically.
Do we want to implement TOTP ? Do we design the UX to prioritise a particular app for this such as Google Authenticator or Authy?
Do we implement SMS text based 2 factor auth that although it's not that secure, easier to use than TOTP ?
Input very much welcomed.
With our goal in mind of encouraging community building rather than following building.
The trending section should be similar to the trending communities section where we can explore trending posts by categories.
We will manage to do this by using community posts which are inherently linked to a category.
Currently the auth token is fixed to a given user. We need to make this token expire and claim a new one frequently in the app.
This is a precursor to #152 .
Would be great to have a way to reply to peoples comment.
It doesn't need to be a thread by itself each comment.
Should send a notification to the original commenter and provide a way to retrieve the replies for a given post comment.
We should be able to pin community posts.
When joining too many communities, it can get overwhelming to browse your own timeline.
We have the APIs, we simply forgot to build the frontend.
Create a way to reset a password.
How did we miss this? π€¦ββοΈ
Right now, every user follow is linked to one and one list only.
I can easily imagine the scenario where I want to have the same user on multiple lists.
Same as #53 but with lists.
People are getting an unknown error when uploading images.
They have also reported resizing the image helped sometimes.
Let's check.
Repeated people are being returned in the search people to invite to a community. I believe has to do with a missing distinct()
query.
German, spanish, portuguese... We need to open this up.
Perhaps reacted might be annoying. I do see commenting to be very useful.
This one is a biggie.
Build a logical way for categories to have topics. For example a photography community might have a black and white topic, symmetry & more.
It will be a challenge in the user perspective to make it make sense but seems like a pretty great thing to build.
Uploaded images need to be stripped from the Exif data. The metadata that comes with the images might reveal the user's location, the phone they use etc. This is possible using Pillow, which is already part of the project.
An idea of how to do this can be found: here.
Would be great to have a section where we can see what's new in the app everytime there is something new.
It's essential to be able to see who's following us.
Shouldn't be too hard. A cursor-based pagination stream of followers based on user ids
We should probably show them a message like you've been banned from this community.
We also need to check this on the can comment can react to post.
When the user has requested to connected to another user and the connection is not yet bi-directional, the other user might already be able to see encircled posts of the initiator.
Right now it's a bit confusing tbh specially with the new comment thingy on the bottom
Some people changed their username and when they tried to change it back to the original it was showing username taken error, even though there are no users with that username.
This probably happens because we check both UserInvite and User tables to see if usernames are taken in order for people not to change to some backers username who has not created their account yet.
However, we should check only for those rows in the UserInvite table that have not yet created their account.
In the spirit of building communities rather than followings, all trending posts should be community oriented.
To prevent resource exhaustion the API should check the image file size. This can be done by comparing max size with request.FILES['file'].size
. What is the largest image size Openbook will support?
Would be nice to be able to preview links posted in a post.
This implies detecting theres a link on a given post and fetching its metadata.
We can do some proxying for the metadata to keep it private for the user.
Cyrill Kunze [5 minutes ago]
For now I think this is a very important thing that should be well considered for the future how Openbook will handle this to take engough care about users privacy.
It might be ok to allow it, if it meant that previous posts would remain private and only new posts would be public.
At the same time there should be a notice to all community members that the community has changed to public (edited)
Although a traditional pattern for making search persistence users/?query=joe
, there is no real reason why not having the query as part of the request body, making it non loggable by the server.
Already a bit hard to find certain communities with the 10 results retrieved
This leads to the blocking of Openbook.
We need to refute this.
Support issuing multiple revokable tokens. One for each of the person devices.
This would allow to get an overview of the active "sessions" and revoke access at any moment of a particular one. For example if the device was stolen.
People should be able to react to comments in the same way they react for posts.
Would be good to be able to upload gifs.
Now with the mobile version this would be through a Giphy integration.
Would be even better if we can do this too with avatar/cover photos.
In the behind the scenes we will most likely for performance and bandwidth reasons convert everything to videos, therefore #137 is a precursor of this.
For posts its a different story (#155) but for avatars might not be a problem to have both png and gifs accepted.
As reported by Sentry. There might be an issue with the joint keys of the community and community membership model.
In the FAQ I read:
"Will Openbook be decentralised?
We want to get there eventually. Weβre looking into Solid MIT approach (The one from Tim Berners Lee) and weβre very pleased with it so far."
Please consider implementing ActivityPub! It's a W3C standard and is already live on multiple projects (incl. Mastodon). It can even work when Openbook is still centralized. It's actually the only relevant social protocol today.
See also Wikipedia. Don't make Openbook the next walled garden!
People have mentioned they would like to modify posts.
Allow it but do add a mark that it has been modified to prevent confusion.
For some reason, there's a threshold to the amount of administrated communities we can see.
Sometimes there is database unique_constraint
error on a particular test case.
Check the tests on this failed build for error stack: https://circleci.com/gh/OpenbookOrg/openbook-api/1084
Right now, every user connection is linked to one and one circle only.
I can easily imagine the scenario where I want to have the same user on multiple circles.
We've had one report of multiple notifications sent for a single comment. Investigate.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.