INACTIVE [Dev] Revolution HK

Status
Not open for further replies.

TheRealMoonman

I eat babies
Sep 30, 2014
360
74
logo.png

Revolution HouseKeeping
Revolution Housekeeping is a Open Source C# Desktop Application, that acts as an external housekeeping application, much like Navicat, but the data is much more specific, and is restricted to different ranks according to what you specify in the configuration.

NOTE: I'm pretty busy, so this project will take some time, even though it is a pretty simple project.

The program basically connects to your MySQL database at runtime, obtaining your table data, then you basically login in the application using your normal login details, then the main page will pop up, displaying all the features.

Features.
  1. Sexy af Metro Framework UI
  2. ConnectionStrings Stored within the app.config, which protects the open source data connection data from skid reverse engineering if you choose to close the source.
  3. MySQL Server compatible
  4. Will be compatible for both hotel and RP
Thats basically it tbh, the security features would probably be the only upside to this, I will not bother putting in RSA encryption for the connection string for those paranoid hotel/rp owners, don't let that logo fool you, i made it on lmfao

ALSO no code snippets because I've only designed the login gui, i will update those into it soon though.
 
Update:
1. Started Install Project, (THIS will be closed source, because wtf are you going to do with it? reverse it if your desperate lol)
The concept of it is to have it get MySQL/SQL Data > Place into Config files. Only reason I'm making the install project is to make the application more user friendly, and im reconsidering encrypting the connection strings :D

Snippet of install
Code:
 public void MySQLGetDB(string Host, int Port, string User, string Pass)
        {
            try
            {
                string ConnectionStr = "SERVER="+Host+";Port="+Port+";UID="+User+";PASSWORD="+Pass+";";
                MySqlConnection connect = new MySqlConnection(ConnectionStr);
                MySqlCommand cmd = connect.CreateCommand();
                cmd.CommandText = "SHOW DATABASES;";
                MySqlDataReader Reader;
                connect.Open();
                Reader = cmd.ExecuteReader();
                while (Reader.Read())
                {
                    string row = "";
                    for (int i = 0; i < Reader.FieldCount; i++)
                    {
                        row += Reader.GetValue(i).ToString();
                        MySQLDBSelect.Items.Add(row);
                    }
                }
                connect.Close();
            }
            catch(MySqlException ex)
            {
                MetroMessageBox.Show(this, "Error obtaining DB's" + ex.ToString(), "ALERT");
            }
        }
 
Update:
Installer complete, kinda changed it around a little, it spawns a app.config, that is in another format, which is easily changed to the correct by renaming, you enter your information etc. then you copy the spawned config file into your Revolution files, and rename it, replacing the original app.config.

Vid


Snippets of Main.cs (Setup.exe)
Code:
private void MySQLDBFetch_Click(object sender, EventArgs e)
        {
            int Port;
            Port = Convert.ToInt32(MySQLPortInput.Text);
            MySQLGetDB(MySQLHostInput.Text, Port, MySQLUserInput.Text, MySQLPassInput.Text);
        }

        private void MySQLTest_Click(object sender, EventArgs e)
        {
            int Port;
            Port = Convert.ToInt32(MySQLPortInput.Text);
            TestConnection(DBEngineSelect.SelectedIndex, MySQLHostInput.Text, Port, MySQLUserInput.Text, MySQLPassInput.Text, MySQLDBSelect.SelectedItem.ToString());
        }

        private void MySQLFinish_Click(object sender, EventArgs e)
        {
            int Port;
            Port = Convert.ToInt32(MySQLPortInput.Text);
            FinalizeSetup.Finish(DBEngineSelect.SelectedIndex, MySQLHostInput.Text, Port, MySQLUserInput.Text, MySQLPassInput.Text, MySQLDBSelect.SelectedItem.ToString());
            if (FinalizeSetup.Created == true)
            {
                MetroMessageBox.Show(this, "Configuration Complete, Place the app.revoconfig in your RevolutionHK folders where app.config is located and rename the new config file to app.config");
                Application.Exit();
            }
            else if (FinalizeSetup.Created == false)
            {
                MetroMessageBox.Show(this, "Error creating configuration file, please consult traeretros about this if you've attempted multiple times.");
            }
        }

Snippets of Finalize.cs (Setup.exe)
Code:
 public bool Created = false;
    
        public void Finish(int DBengine, string Host, int Port, string User, string Pass, string DB)
        {
            if (DBengine == 0)
            {
                try
                {
                    System.Text.StringBuilder sb = new StringBuilder();
                    sb.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
                    sb.AppendLine("<configuration>");
                    sb.AppendLine("<connectionStrings>");
                    sb.AppendLine("<add name=\"dbconfig\" connectionString=\"SERVER=" + Host + ";PORT=" + Port + ";UID=" + User + ";Pass=" + Pass + ";Database=" + DB + ";\"/>");
                    sb.AppendLine("</connectionStrings>");
                    sb.AppendLine("<startup>");
                    sb.AppendLine("<supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.5\" />");
                    sb.AppendLine("</startup>");
                    sb.AppendLine("<applicationSettings>");
                    sb.AppendLine("<RevolutionHK.Properties.Settings>");
                    sb.AppendLine("<setting name=\"IsInstalled\" serializeAs=\"String\">");
                    sb.AppendLine("<value>True</value>");
                    sb.AppendLine("</setting>");
                    sb.AppendLine("</RevolutionHK.Properties.Settings>");
                    sb.AppendLine("</applicationSettings>");
                    sb.AppendLine("</configuration>");
                    string loc = Assembly.GetEntryAssembly().Location;
                    File.WriteAllText(String.Concat(loc, ".revoconfig"), sb.ToString());
                    Created = true;
                }
                catch (Exception)
                {
                
                }
            }
            else if (DBengine == 1)
            {

            }
        }

DBengine == 1 will be the SQL Server compatibility, but the initial release of this will not come with SQL server compatible.

Edit: Lol you can hear those cancerous beats i was listening to while making dis

Update: Added new option to the install, you get to choose which table to use for your HK login

Screenshot_4.png
 
Last edited:

Menkz

Member
Jul 9, 2010
374
167
seems like an alright concept, but how would mods and stuff be able to access this without knowing the database connection info?
 

TheRealMoonman

I eat babies
Sep 30, 2014
360
74
seems like an alright concept, but how would mods and stuff be able to access this without knowing the database connection info?
They wouldn't need it because the owner would be the ones inserting the database information into the setup, and applying the configuration that the HK reads and retrieves data off, so if the owner decided to compile it and close the source off, the app.config that the owner initially set in the setup, would still be the same and it would connect to the database automatically.
 
I had this idea a very long time ago. I went through with it, but I asked @JMG and @Hender if it was a good idea and It just seems that a HK on a website is more accessible than an application. (IMO)
I fully agree, but most retros I've developed for either or even played on are to paranoid to implement housekeeping on their website, lucky enough this will be open source for people to customize it to their specification if they want.
 

TheRealMoonman

I eat babies
Sep 30, 2014
360
74
Update:
The Main executable (Revolution HK) can read from the config files, and pull in the login table to log the user in, its lookin good so far
Screenshot of login:


I'm open to suggestions on developing the GUI, I do not consider myself very creative when it comes to designing, but this framework is pretty neat, i was going to use the modern windows look with the Tile buttons etc and maybe some splash screens for loading
 

Velaski

winner
Aug 4, 2015
562
165
Update:
The Main executable (Revolution HK) can read from the config files, and pull in the login table to log the user in, its lookin good so far
Screenshot of login:


I'm open to suggestions on developing the GUI, I do not consider myself very creative when it comes to designing, but this framework is pretty neat, i was going to use the modern windows look with the Tile buttons etc and maybe some splash screens for loading
I'd recommend Bunifu Framework. I use it for designing winforms but it is WPF compatible. It's so sexy
 

JynX

Posting Freak
Feb 6, 2016
710
438
Honestly see this as no use because it's an executable and what if I want to use it at school or work when I need to do something major and I don't have a computer around? Good luck with this I also do like @Velaski's suggestion on using Bunifu :p
 

Haid

Member
Dec 20, 2011
363
448
Interesting idea but I really don't see a time where I'd rather have this than a web accessible panel, especially as when I'm not at a computer I'm often needing to handle things from our staff panel on my phone/tablet. If it's educational for you and you're learning stuff great but I don't think it's going to go to use in production sadly.

Good luck!
 

TheRealMoonman

I eat babies
Sep 30, 2014
360
74
Interesting idea but I really don't see a time where I'd rather have this than a web accessible panel, especially as when I'm not at a computer I'm often needing to handle things from our staff panel on my phone/tablet. If it's educational for you and you're learning stuff great but I don't think it's going to go to use in production sadly.

Good luck!
The product is mainly directed at inexperienced hotel owners that want housekeeping, but are too paranoid to implement it into their web server, or just have trouble doing it.

Thank you though :)
 
Update:
Fully working Login integrated into the database, sorry about the late update, been a pretty busy week for me.

Snippets:
Code:
public void Login(string Username, string Password)
        {
            MySqlConnection Connection = new MySqlConnection(ConnectionS);
            Connection.Open();

            string SQL = "SELECT * FROM `" + UserTable + "` WHERE " + UserCol + "='" + Username + "'";

            try
            {
                MySqlCommand cmd = new MySqlCommand(SQL, Connection);
                MySqlDataReader read = cmd.ExecuteReader();

                while (read.Read())
                {
                    PasswordU = read.GetString(PassCol);
                }
                if (Password == PasswordU.ToString())
                {
                    LoggedIn = true;
                    FailedLogin = false;
                }
            }
Video:
 
Update
Possibly IDS (Intrusion Detection System) system implemented into Revolution HK, which will only be monitoring HTTP requests, to find possible security flaws within your website, this is not a certain implementation due to my intermediate knowledge of coding packet sniffers in C#
 
Update
Been working on the GUI of the main area of the program, and hopefully its to peoples standards, but I welcome any kind of suggestion towards the GUI, because I'm not the creative type when it comes to applications, but I'm doing my best to give it a clean, but good look :)
Screenshot_35.png


Screenshot_9.png

Screenshot_10.png
I am still working on the User Management UI obvs, oh btw, whoever owns that custom gun image, let me know your name if your interested in being credited for that.
 
Update:
[-] - User Management Complete (Search UserInfo, Modify basic user information e.g Username, Email, Credits, Rank, Motto)
[-] - Started working on News Manager
To-Do
[-] - Furni Manager
[-] - Ban Manager (This will not be displayed on the main navigation, it will be on the Home Window)

ETC: 2-3 days depending on real life issues that wanna get in my way.
On a positive note, this will be posted along side with a tutorial on how to install and configure Revolution HK, and it will be posted on github open source, so people can modify the code and the program itself to their own specification.
 
Update: Development has slowed down, due to my stupidity in doing most of the project using no datasets whatsoever, so it pulls over the data every query, which is fucked and i have no idea what i was doing, I will release it like that, and it will be up to anybody thats interested in modifying it to change it over themselves.
 

NathanCarn3y

Leaving a legacy
Sep 14, 2016
625
195
The product is mainly directed at inexperienced hotel owners that want housekeeping, but are too paranoid to implement it into their web server, or just have trouble doing it.

Thank you though :)
 
Update:
Fully working Login integrated into the database, sorry about the late update, been a pretty busy week for me.

Snippets:
Code:
public void Login(string Username, string Password)
        {
            MySqlConnection Connection = new MySqlConnection(ConnectionS);
            Connection.Open();

            string SQL = "SELECT * FROM `" + UserTable + "` WHERE " + UserCol + "='" + Username + "'";

            try
            {
                MySqlCommand cmd = new MySqlCommand(SQL, Connection);
                MySqlDataReader read = cmd.ExecuteReader();

                while (read.Read())
                {
                    PasswordU = read.GetString(PassCol);
                }
                if (Password == PasswordU.ToString())
                {
                    LoggedIn = true;
                    FailedLogin = false;
                }
            }
Video:
 
Update
Possibly IDS (Intrusion Detection System) system implemented into Revolution HK, which will only be monitoring HTTP requests, to find possible security flaws within your website, this is not a certain implementation due to my intermediate knowledge of coding packet sniffers in C#
 
Update
Been working on the GUI of the main area of the program, and hopefully its to peoples standards, but I welcome any kind of suggestion towards the GUI, because I'm not the creative type when it comes to applications, but I'm doing my best to give it a clean, but good look :)
Screenshot_35.png


Screenshot_9.png

Screenshot_10.png
I am still working on the User Management UI obvs, oh btw, whoever owns that custom gun image, let me know your name if your interested in being credited for that.
 
Update:
[-] - User Management Complete (Search UserInfo, Modify basic user information e.g Username, Email, Credits, Rank, Motto)
[-] - Started working on News Manager
To-Do
[-] - Furni Manager
[-] - Ban Manager (This will not be displayed on the main navigation, it will be on the Home Window)

ETC: 2-3 days depending on real life issues that wanna get in my way.
On a positive note, this will be posted along side with a tutorial on how to install and configure Revolution HK, and it will be posted on github open source, so people can modify the code and the program itself to their own specification.
 
Update: Development has slowed down, due to my stupidity in doing most of the project using no datasets whatsoever, so it pulls over the data every query, which is fucked and i have no idea what i was doing, I will release it like that, and it will be up to anybody thats interested in modifying it to change it over themselves.
To be honest in the screenshots I do not like the way the layout is. Just my opinion.

5/10
 
Status
Not open for further replies.

Users who are viewing this thread

Top