Habbo Web Application for Arcturus Emulator (Laravel, Inertia.js and Tailwindcss)

Laravel

Member
Nov 29, 2020
49
61
Hello Devbest,
This is my first post, so please be kind!

What have I built?
So I am not going to call this a CMS as it really is just a Web Application built in Laravel, but ideally it's a web application for the Acturus Emulator with all the features of a normal Habbo CMS.

Why have I done this?
As a Software Engineer, we've all had our struggles of picking up a codebase that is completely bespoke and dig through all the files to work out what the f*** is going on and I found that every time I've wanted to build a Retro, I have to lean towards these custom bespoke "CMS" like RevCMS and BrainCMS and then build out a "theme" on a template engine that is build with Twig or some custom templating engine (No shade on Rev or Brain as they've got some big Retros to the position they're in now).

I want to remove that aggravation of having to learn something custom and allow people to use a framework and a frontend technology that is industry known.

What does it offer?
  • Easy to Learn Technologies: Laravel, Inertia.js (vue) and Tailwindcss
  • Authentication using Laravel Jetstream (Login, Register, Forgot Password)
  • Cute Design inspired by Habboon's Frontend (Rebuilt in Tailwindcss)
  • Me Page
  • News Page
  • Highscores Page
  • Staff Page
  • Client Page
  • Easy to configure .env files to manage as much as possible (credits, points, social links, retro name, all that good shit)
  • A Cool Middleware for handling the most amazing Retro List Voting
  • Automatic Logos based on the Retros short name
  • View News Page
  • Store Page with the ability purchase Diamonds (Building atm)
  • Account Settings
  • Laravel Nova for Housekeeping (Building atm)
  • RCON api
  • Electron App that is compilable from the same codebase (Building atm)
So... How can I get a look at this?
As I am going to be maintaining this for the foreseeable future, I have a hotel using the web application at .
This project will be completely open source and I am happy for anyone to make Pull Requests and i'll evaluate them as they come in :)

Who do I thank for this 'wonderful' project?
I would give credits to I guess myself, a little shoutout to Boon for their design inspiration and a massive amount of credit to Laravel, Vue and Tailwindcss for an amazing Frameworks

Feedback welcome!
 
Last edited:

Berk

berkibap#4233
Developer
Oct 17, 2015
863
190
This looks quite good, glad to see some new projects, Development forum was kinda dead, hopefully you don't abandon this project.
Easy to configure .env files to manage as much as possible (credits, points, social links, retro name, all that good shit)
One thing I don't like is this, I would like to see / edit those settings in database, this would be easier for you to manage in HK.
 

Laravel

Member
Nov 29, 2020
49
61
This looks quite good, glad to see some new projects, Development forum was kinda dead, hopefully you don't abandon this project.

One thing I don't like is this, I would like to see / edit those settings in database, this would be easier for you to manage in HK.
Thank you, I'm not one to be a quitter, I have plans for implementing Nitro when it is released too!

Thanks for the feedback, I will currently keep it in the .env file as it requires less queries to the DB, but if I get more feedback on the configuration, i'll switch it over :)
 

Roper

Ancient Member
Jul 4, 2010
586
228
I agree with @Berk the settings should be configurable within the database. And for the ultimate noob, maybe an installer which allows these options to be configured during setup.

I look forward to this project, we need more alternatives to use.
 

Laravel

Member
Nov 29, 2020
49
61
I agree with @Berk the settings should be configurable within the database. And for the ultimate noob, maybe an installer which allows these options to be configured during setup.

I look forward to this project, we need more alternatives to use.
I love the idea of an installer! I'll give this a look into :D
Post automatically merged:

Quick Update for Everyone:

Recently finished:

  • View News Page
  • Account Settings
  • RCON api
  • Fixed Webpack Chunking issue
  • Removed JS bundles from going to Github (must build on production)
Working on for the rest of the day:
  • Banned View
  • Store (paypal integration)
    • Top Up Account
    • Buy Diamonds
    • Buy VIP
  • Integrating Nova (Maybe pushing source files so the user don't have to pay for Nova Licence, still being thought out).
Any other ideas will be deeply appreciated :D
 
Last edited:

Raizer

Active Member
Feb 21, 2019
145
76
Good luck with your project.

There are few things I don't like programwise. For example your rconServices, because everything is already builded in Arcturus so why you create for each rcon a function? For example you can do

Code:
Api::execute('setrank', ['user_id' => 1' rank' => 1]);

Code:
$data = json_encode(array('key' => $param, 'data' => $data));
if(socket_write($socket, $data, strlen($data)) === false){
            return;
}

And also, why did you choose to make envoirement file for configurable for everything? In my eyes env file is for the environment not for configurable stuff like credits. And also why you do the validation stuff in your actions? That is not how it should be. Also you replaced services for actions? I'd never programmed in laravel but my prefer is Ares. If you want to see how they did the logical stuff, it can help you in progress for this.



Good luck with your project!
 
Last edited:

Laravel

Member
Nov 29, 2020
49
61
Good luck with your project.

There are few things I don't like programwise. For example your rconServices, because everything builded already in Arcturus so why you create for each rcon a function? For example:

Code:
Api::execute('setrank', ['user_id' => 1' rank' => 1]);

Code:
$data = json_encode(array('key' => $param, 'data' => $data));
if(socket_write($socket, $data, strlen($data)) === false){
            return;
}

And why did you choose to make envoirement file for configurable for everything? In my eyes env file is for the environment not for configurable stuff like credits. And also why you do the validation stuff in your actions? That is not how it should be. Also you replaced services for actions? I'd never programmed in laravel but my prefer is Ares. If you want to see how they did the logical stuff, it can help you in progress for this.



Good luck with your project!

I like to give people the easy and more understandable way when they're reading their code, but the flexibility is there, you can do the following:

PHP:
    /**
     * Handle the incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function __invoke(Request $request, RconService $rcon)
    {
        $rcon->giveDiamonds($request->user(), $product->reward);
        $rcon->sendPacket('givepoints', [
            'user_id' => $request->user()->id,
            'points' => 10000,
            'type' => 5,
        ]);
    }

As for the .env thing, from my experience with working on Laravel (and building libraries for Laravel), You use the env file as long as it makes sense to sit in the environment as it's then passed to the configuration files.

I don't know if this is a Habbo dev thing, but having everything in the database is not always the best thing to do, I save you tons of queries by having config files :D
Post automatically merged:

As a quick update:
I have added the ability to "top up your account" via PayPal and implemented a store to purchase diamonds and Duckets :D
Post automatically merged:

You must be registered for see images attach
 

Siract

Classic Habbo
Sep 4, 2011
148
27
Looking really good - always nice to see a new CMS on the block.

Good luck with this project and hope it goes well for you!
 

Laravel

Member
Nov 29, 2020
49
61
Another Update, Housekeeping is currently in development and
Looking really good - always nice to see a new CMS on the block.

Good luck with this project and hope it goes well for you!
Thanks mate, really appreciate it!

I hate the term CMS, it's more of a web app with an admin panel haha
 

Object

?
Nov 10, 2017
429
352
Amazing stack you've chosen! (My favorite🤷‍♂️)

Code wise imo, it looks well done aswell. Looking forward for updates (only read through few files on my phone)

For the .env settings, i agree on the way u've done it. I don't see the reason for the current implemented ones, to be configurable, through the database.

Good luck!
 

Raizer

Active Member
Feb 21, 2019
145
76
Amazing stack you've chosen! (My favorite🤷‍♂️)

Code wise imo, it looks well done aswell. Looking forward for updates (only read through few files on my phone)

For the .env settings, i agree on the way u've done it. I don't see the reason for the current implemented ones, to be configurable, through the database.

Good luck!
I think you guys get it wrong. Create a json file and implement that way. i'd never complain to move it to the database. It looks maybe simple but that is not how it should be. For example:

 
Last edited:

Berk

berkibap#4233
Developer
Oct 17, 2015
863
190
Thank you, I'm not one to be a quitter, I have plans for implementing Nitro when it is released too!

Thanks for the feedback, I will currently keep it in the .env file as it requires less queries to the DB, but if I get more feedback on the configuration, i'll switch it over :)
If you don't want to bomb database with queries, cache values you get from database and store them in a file/array/whatever. And you can reset cache every 60 minutes and give hotel owners ability to reset it manually with a button in HK.
 

Laravel

Member
Nov 29, 2020
49
61
If you don't want to bomb database with queries, cache values you get from database and store them in a file/array/whatever. And you can reset cache every 60 minutes and give hotel owners ability to reset it manually with a button in HK.
This is a possibility but it doesn't feel Laravel, if you get me
Post automatically merged:

Amazing stack you've chosen! (My favorite🤷‍♂️)

Code wise imo, it looks well done aswell. Looking forward for updates (only read through few files on my phone)

For the .env settings, i agree on the way u've done it. I don't see the reason for the current implemented ones, to be configurable, through the database.

Good luck!
Thank you man, really appreciate it
 

Laravel

Member
Nov 29, 2020
49
61
Really not bad but Laravel Nova being paying you do not have the right to share it so review your github
Thank you and I don't really think it matters as Habbo doesn't pay us and we copy their stuff all the time and post it on Github :)

If I get more feedback like this, I'll switch nova over to install from composer :)
Post automatically merged:

Hey all,

I've had a couple of days brain break, but a few new updates that I've made:
I've added a cool new game called Mystery Boxes, very similar to the website HypeDrop, implemented directly into the client.
You can sell boxes for credits, diamonds, or account balance and give rewards such as items, credits, and diamonds.
I have also added everything to be manageable from the housekeeping via /housekeeping.

You must be registered for see images attach


You must be registered for see images attach
 
Last edited:

Laravel

Member
Nov 29, 2020
49
61
For sure, it's there as a base, as long as you got some concept of Vue and Blade experience, it's pretty straight forward :) /resources folder will be what you need to look at
 

Users who are viewing this thread

Top