What is Raven
Raven is a platform that uses custom_json to make posts to allow for short form microblogging without cluttering up your feed. Short form content(while getting more tolerated) can still be seen as over-rewarded crap on the chain and trigger some downvotes for you. But what if you did this without any of the worries of downvotes from spam fighters? Or honestly, just make 10-20 posts a day and not worry about cluttering up the feeds of your followers? Then Raven is for you. Check it out at https://raven.dwg.wtf/.
My Baby Is Alive
I've had this idea for a while, using custom_json to make posts, and I saw this post and saw it actually being used, and that got me interested in doing that again. So later that night, I started the project.
I designed it so that anyone who wants to create something similar can easily take my code and work off that, and if they have little knowledge, it should be as simple as following a guide on how to setup with the config file(notice how my code has a field for title even though Raven doesn't use that). I talked to a friend, who would like to remain unnamed for now, about it, and was having problems with SQL, and with him being a SQL(and relational databases in general) god, he helped me set up the architecture for speed and scalability as I'd only been working with SQL(and relational databases) for just over 10 days at that point. That was Carrige(Yes I know its spelled wrong, I'll fix it someday): https://github.com/Rishi556/Carrige, Raven's backend.
We are calling posts Caw's
Now this is definitely a work in progress(the API has such a bad architecture to it, but gotta do what you gotta do to enter the hackathon in time). Theres so much more planned to this, including admin actions, which allow admins to delete posts(gotta comply with dmca right) as well as banning users(can only allow some spam through) but the MVP is just the ability to make posts, comments, modify them and vote on them.
So far Carrige has: root posts, comments, updating comments, deleting comments, upvotes, downvotes, and removal of votes. Just the bare minimum to be a social app. Each individual action can be enabled or disabled(so a user making their own platform can choose to disallow downvotes, or disallow comments, hell even root posts) to allow for customizability for those setting up their platforms. Carrige also has replay functionality. So if you accidentally mess up and lose your database, you can go back and get the old data back into the database.
This man knows what he's talking about
The backend is built using Node.JS and MySQL as the database has some dependencies including:
@hivechain/hivejs- for easy activities on the hive blockchain
cors - For allowing cross origin requests
express - For the simple setup of a webserver that it has
moment - For easy time manipulation
mysql - To interact with the MySQL database
You can check out the code here: https://github.com/Rishi556/Carrige. Raven is running with a few of the configs disabled including downvoting and updating comments.
The frontend is built using PHP(and it was started with less than 15 hours of time left before the hackathon was over, so please excuse how bad it is, thanks @cadawg for helping with it) and it's dependencies include:
A Wild SteemConnect V2 Api Appears - HiveSigner Usage
bootstrap- Gotta look pretty
hivesigner- For those without keychain
hivekeychain- For those without hivesigner
jquery- For what it does# Header
popper- It makes bootstrap work
font awesome- Awesome Fonts And Images
The codebase for the frontend can be found here: https://github.com/Rishi556/Carrige/tree/master/interface.
You can view the live project here: https://raven.dwg.wtf/.
EDIT: I'll be continuing to work on the backend of this(thought not pushing it to production), and as there needed to be a freeze, I've created a branch with the final code submitted for the hackathon: https://github.com/Rishi556/Carrige/tree/hackathon-final.
There's quite a lot planned for this, as mentioned above. For now, focus is on the backend, as thats what I mostly work in. Some of the code can be improved and was written just to make it in the for the hackathon. But the major goals are to have admin_actions and a working trending as well sharing features ready by the end of the month.
Then some time will be spent working on a better UI(one that wasn't rushed), and finally working with the metadata field for tags, and a rewarding mechanism that will use hive-engine and then switch over to SMT when(if?) they come around. Updates will come about slowly but I want them to be as good as possible, and easy for anyone to take and start their own site with.
TLDR: https://raven.dwg.wtf/ On Raven, you can make short posts that don't show up on your feed.
Please note that the name and branding an UI are temporary and will most likely be changed(unless I can find a raven domain for cheap) as I originally wasn't planning on entering this hackathon, but everyone's favourite @moowoof decided to enter and so I had to show him up and enter myself too.