[PHP][SQLi][MVC] MusSystem - Advanced Habbo Web System

Status
Not open for further replies.

Khalil

IDK
Dec 6, 2011
1,642
786
Hello, as I recently wanted to give back to the once thriving Habbo community of DevBest just as once it gave so much to me, I've decided to bring back an old project of mine to life and turn it into a community project, in hopes of reviving this section and bringing it back to its glory.

The project is an advanced Habbo web system, called MusSystem, which offers simplicity and professionalism all in a one compressed package, so, let's speak of features (promised features for the first generation of MusSystem):

User Features:
  • Authentication – Including a fully functional and feature-rich user system, that offers login; registration; account management; character management and parenting accounts; etc..
  • Fast front-end - Keeping the end-users happy and make them want to stick around for more.
  • Rich Housekeeping (ASE) – To keep the staff happy and able to their job properly, simplifying their tasks is an essential part of the mission around here, the ASE comes full of features that range from full user management; to website and client handling (more clarification and explanations will be provided later on).
  • Fully Functional Store – MusSystem comes packed with a store that offers services ranging from badge shopping to bots shopping and even Habbo Club packages, implemented with several automatic payment methods including; PayPal & Paygol.
  • Private Messaging System – If for some reason your client is down, your users can continue to chat with eachother, with their messenger chat being synced into the PM system, they can continue on where they left off.
  • Browser Notifications - Allowing users to be notified when not browsing your hotel, the user is alerted in any of these cases: Ban/Kick; New Messenger Message; Failed Login Attempt; Friend Requests.
  • User Security & Account Protection – Private and personal salt/key to encrypt/decrypt user data; login attempts logs; IP forgery detection and forbidding; email verification; two-step verification; etc..
Developer Features:
  • MusSystem is made for environments running PHP7.0, however, you can downgrade to specific older versions at will to suit your development and production environments.
  • Full Documentation – Since this is an open-source community project, I believe documentation is required to lend a hand to those of you who are new and need guiding if you wish to contribute to the project yourself.
  • FTP Implementation – MusSystem offers FTP/SFTP connections, allowing you to remotely control and manage your files from the comfort of your housekeeping (ASE).
  • MySQLi – MusSystem makes use of MySQLi to power its back-end database handling, providing a fast; secure and swift SQL management.
  • FindRetros API – An essential feature that retros depend on to gain popularity and work on massing a good userbase is voting, and MusSystem brings just that, with a fully implemented FindRetros API, officially provided and supported by the administrator and maintainer of FindRetros, @RastaLulz.
  • Cross-software Compatibility – MusSystem will support many emulators and their respective databases such as Azure; Phoenix and Butterfly.
  • Two-step Verification – I managed to get my hands on a paid SMS API, that allows to send SMS/text messages worldwide, which I will utilize to implement two-verification for more security, unfortunately, If you wish to active this feature, you will have to pay for it as I'll be linking to it later on.
In any case, let's get down to some snippets, I haven't done much as I only just got started at around 3PM (5PM now), however, since I managed to partially finish the database manager, I'll post a snippet from that:

Before anyone goes about the array to string conversion, I've tested this on both PHP7 and PHP5, it seems to only cause an error on the latter, I'll be working my way around it.
PHP:
        public static function Steal($Parameters = array())
        {
            if(self::Configuration('SQL', 'Truth'))
            {
                try
                {
                    if($grabQuery = self::doSQL($Parameters = array('Key' => 'Execute', 'SQL' => "SELECT `{$Parameters['Column']}` FROM `{$Parameters['Table']}`")))
                    {
                        return $grabQuery->fetch_object()->$Parameters['Column'];
                    } else {
                        self::saveException($Exception = array(
                            'Type' => 'SQL',
                            'Code' => substr(rand(), 0, 6),
                            'Message' => $grabQuery->error
                        ));
                    }
                } catch(Exception $E) {
                    self::saveException($Exception = array(
                        'Type' => 'SQL',
                        'Code' => $E->getCode(),
                        'Message' => $E->getMessage()
                    ));
                }
            }
        }

Anyways, I will update this thread regularly with new development updates; snippets; screenshots; etc. When I feel it's ready to be introduced to the public, I will push this on GitHub so you guys can have a general look around.


P.S: If you're all wondering about the front-end and how everything's going to look, I suggest taking a look at this album that contains old images dating back to the time of the old and original development (expect something similar yet very much better and improved):
 
Last edited:

Brad

Well-Known Member
Jun 5, 2012
2,320
993
Thread cleaned, also good luck with this Development, wish you all the best with it, but from What i've seen and what you've sent me, I highly doubt you need my luck.
 

LeChris

John 15:18
Sep 30, 2013
2,786
1,395
The features look good so far, goodluck mate! I love the idea of SMS based authentication, as well as browser notifications.
 
The features look good so far, goodluck mate! I love the idea of SMS based authentication, as well as browser notifications.
 

Khalil

IDK
Dec 6, 2011
1,642
786
The features look good so far, goodluck mate! I love the idea of SMS based authentication, as well as browser notifications.
Thanks, yes well, they're both fairly easy to implement. I've done it before on the old Mus, create an account with the API provider; load your account with credits; implement the API on your own project; make a CURL request to the API provider and voila, just generate a code; save it to the database; send the same code to the proper phone number, if it matches the code logged; the user gets access to his account.

And since this thing costs real money, I've taken precautions to make sure it's not abused and you end up with your credits wasted on nothing, for example, only active users can enable two-step authentication, new users that are active within a one month period of time, can enable it too.
 

Jaden

not so active
Aug 24, 2014
886
263
Not to be all OCD and everything but it bothers me how you use { } when you're only executing a line of code in-between the brackets.

I guess this is just an example of what I mean, I'm not saying you should write code like this, but only consider it...
I've been doing that for along time... It was my bad habit.

PHP:
        public static function Steal($Parameters = array())
        {
            if(self::Configuration('SQL', 'Truth'))
            {
                try
                {
                    if ($grabQuery = self::doSQL($Parameters = array('Key' => 'Execute', 'SQL' => "SELECT `{$Parameters['Column']}` FROM `{$Parameters['Table']}`")))
                        return $grabQuery->fetch_object()->$Parameters['Column'];
                    else
                        self::saveException($Exception = array(
                            'Type' => 'SQL',
                            'Code' => substr(rand(), 0, 6),
                            'Message' => $grabQuery->error
                        ));
                } catch(Exception $E) {
                    self::saveException($Exception = array(
                        'Type' => 'SQL',
                        'Code' => $E->getCode(),
                        'Message' => $E->getMessage()
                    ));
                }
            }
        }

Nevertheless, everything looks like it's going good with the development
Looking forward to that GitHub or whatever.
 
Status
Not open for further replies.

Users who are viewing this thread

Top