Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

[software development] File exchange software

Alright, I'm gonna release the rather messy code that makes the proof-of-concept version so far. The reason I'm releasing this now is that the next step is to do a massive cleanup on the code that will take quite a while before noticeable improvements take place. I figured I'd go ahead and get feedback on it so far and post this for anyone who is interested.


I know for a fact that many security holes and significant bugs exist in this version. It is a proof-of-concept build and is still far from completion. For that reason, I would recommend that you not use this software on a live site as it is still in a pre-alpha stage.

NOTE: The file attached below has a faulty installer and will not install itself on your server. I've attached a new file a few posts down with a working installer.

NOTICE: Since this post, many changes have been made in the framework, API, and code. For that reason, all attachments prior to POC release #3 have been removed. Please check back later for more information.
Wow amazing work done here. What code language are you using? Looks quite good though! Depending on the coding language I could possibly help you do some coding but my skills are limited and this looks to be a complex project.
I'm using PHP, which is the language used for most websites and web-related projects. I've attached the code so far in my previous post in this thread, so as long as you have WAMP set up on your computer or have some kind of server, you can feel free to test out the progress so far.
Alright, if anyone downloaded the original file, please download this attached file instead. The installer in the previous attached version did not work properly, so I've redesigned the installer so that no manual file edits should be needed. Simply upload to your server, visit the URL in your browser, and it will automatically walk you through the process. If the installer does not work, please report the bug here.

As with the last release, this is a proof-of-concept release and is not suitable in any way for a live site. It comes with no warranty of any kind. Tongue

Here is a screenshot of the much improved installer. Best of all, it actually works! Tongue

[Image: fcinstaller.jpg]

NOTICE: Since this post, many changes have been made in the framework, API, and code. For that reason, all attachments prior to POC release #3 have been removed. Please check back later for more information.
Nice work Blake! Looks nice and clean! Are you going to set something similar up here?
It's not ready to be used on a live site, but eventually I have plans of setting something like that up for project hosting. It's something a few users have suggested, so maybe in the not too distant future we'll have something like that set up. Big Grin
Alright, I know I haven't published too many updates over the past couple weeks. I have been working on some internal structure and planning a new way of storing system settings. The bootstrap layout is now completely applied to the ACP as well, and I will soon go beyond just theming it. I plan on restructuring it completely so that system settings aren't held back by a flat-file storage structure.

The changes coming soon will result in quite a bit of coding, and I've already begun the framework for those changes. Once complete, the ACP system will not only have a much more flexible design and layout with many new settings to play with, but it will also be more flexible as the project grows. Once I have the baseline work for these improvements complete, I plan on releasing the alpha for this software. For now, you can continue to beta test the release I attached a few posts ago. Be sure to use the second attached version, not the first one that was posted. The second one has a repaired installer.

Also, if you've played with the proof-of-concept releases on your own, you may have noticed that the "like" system is non-functional. The database structure to handle "likes" is now complete, and I plan on programming the PHP for it pretty soon. We might be seeing some ajax for the first time once that's done, and I plan on getting some new icons added to build the frontend look and feel for the project. Stay tuned. Big Grin
Proof-Of-Concept release #2

Alright, I've done quite a bit of work and I am ready to release the second proof-of-concept release. A lot of the work was completed on the admin-CP. Most of the pages still don't contain any settings, but the framework to add settings now exists, which is a huge step forward. In addition, active links are now highlighted and some reorganization has been completed.

You may notice that the download file is now significantly smaller. I removed some unecessary files, and it is surprisingly small at only 112KB. The goal in this project is to keep the software as lightweight as possible. However, despite the smaller filesize, things have definitely been improving. Big Grin

Again, this is not suitable for a live website. It comes with no warranty of any kind. Tongue

How to install
Simply extract and upload the files to your server, then go to the URL in your browser. Filecave will automatically walk you through the installation process. If the installation fails, it will bring you back to the install page for a second attempt. If you are unable to get it to install, please report the bug here.

This entire project is licensed under the GNU GPL. A copy of the license is included in the .zip file.

Installation bug found
I've found an installation bug where it does not install if you enter a valid email address for the admin user. This bug will be fixed in the next proof-of-concept release, but for now, just put "example1234" for the email address.

NOTICE: Since this post, many changes have been made in the framework, API, and code. For that reason, all attachments prior to POC release #3 have been removed. Please check back later for more information.
[Image: c8ca.jpg]
It may be modest, but I have begun the work on user profiles. User profiles will of course have the advantage of profile availability, and soon add the ability for customized avatars, etc... but another neat new feature in profiles is the ability to see all uploads from a certain user.

Right now parts of it aren't functional yet. I'm still working on the codebase, but I posted a screenshot of the work so far. Also, the user blogs functionality has not been coded at this point. Do you guys think this is something I should code in, or is it better off left out?
Exciting development, this is coming along nicely. Big Grin Awesomely awesome for sure - the user profile development are really cool as well.
Thanks for the feedback. Big Grin


Most of the work that I have done in the last week is code cleanup. I realized as I was coding the profile system that my code was extremely messy and was not even indented correctly. This is something I have begun to work on. I don't expect all files to be indented by the next release, but my hope is that my code will be more readable, both by myself and by those who wish to contribute to the development. (Remember that you can always contribute to the development by downloading the proof-of-concept releases and testing them out on your own server or localhost. WAMP is a great free utility that installs a localhost on your own computer. )


Due to the fact that HTML5 is becoming the way of the future, I have decided not to convert the existing HTML into XHTML. It would be very time consuming at this point, and provides no real advantage other than the adherence to strict standards that are becoming outdated. As it stands now, the project is HTML4, but I am now planning the conversion to HTML5 to keep the software as bleeding-edge as possible as technology rapidly evolves.

User profiles are progressing nicely. So far they are pretty simple, but they offer the ability for users to share a little about themselves, and every user's profile will have a page listing all of their uploads. Big Grin

Moderator tools

Some users of the software may prefer automated publishing (mods go live as soon as they are uploaded), but other use scenarios may have needs where mods will be approved before they go public. This functionality has not been coded yet, but will be coded very soon.


I will be going out of town a lot during the month of July. I do hope to have a much more solid proof-of-concept release out by the very end of July, however. Big Grin Remember to leave any suggestions you may have here. Development is still early enough for me to implement ideas and suggestions. Big Grin

Are you planning to use source control for this?
(June 29th, 2013 at 8:40 PM)AcoG000 link Wrote: Are you planning to use source control for this?

Not at this point. For now I'll keep the code exclusive to makestation, but later on I definitely plan on doing whatever is needed for the software regarding source control and all that.
The project has been on a bit of a hiatus lately due to the fact that I have been quite busy with other projects, but plans to resume full time development are in the works. I have decided that in an effort to keep this project as useful as possible for admins, I will keep the feature set rather small, focusing insetad on making sure that what is included in the core package is as solid as possible. Most of the core features are already complete, so it's really just down to finishing a few final things, and then of course cleaning up and theming the whole thing. Of course if the product becomes popular, I'm sure users will create their own addons, so keeping the initial package small makes sense in many respects.

I have also decided to drop plans for integration with phpBB down the road. Unfortunately, phpBB's mod system is not really a mod system at all, and the way that it is designed makes it extremely difficult to design mods or "hacks" for them. For that reason, it simply is not practical to continue plans at phpBB integration. The official mod site for phpBB's code is up on github, and it would be much easier to modify that to suit needs than to use something that, by design, cannot easily be integrated.

I am beginning to draw plans for a MyBB version, however. The nature of the project will probably require two separate versions, one for MyBB and one as a standalone project, but I do feel that it will be worth it to do the second version for MyBB.
This sounds quite great, I don't think I could ever edit any code, hehe. How long have you been working with coding stuff? Sounds like you are an expert in it. Smile
Alright, I have finally resumed coding on this project. It has been a very long time since a "real" update, so I figure it's about time to go ahead and publish a list of improvements and what to expect in the next proof of concept release. I took months off the project, and forgot how messy the code was. Thus, my first project has been to do some code cleanup. It's still a hot mess, but at least most of it is readable now. In the process, I've fixed numerous bugs as well.

Bug Fixes
- "Home" link on the menu doesn't behave correctly
- "Register" link displays even if user is logged on
- ACP misbehavior
- Undefined index errors (mostly) fixed
- Tons of small issues
- Fixing "invalid header" errors on uploads. Edit: Fixed
- [In progress] Fixing the logout/login system to work properly

So far, there are still some features that aren't functional, especially in the ACP. The "framework" is there to add additional features, etc..., but I haven't gotten to doing a whole lot with that yet. I will soon, as the framework to store settings in the database also exists, no more config.php edits. Yes, I originally coded the settings to work flat-file, which was more of a pain than I had originally expected it to be. Tongue

Anyway, a big part of this update will be reworking some of the code to use better coding standards, and to expand the API to make some of the actual code much simpler. These changes will occur over a few proof-of-concept releases, so don't expect the first one to be great or anything. However, quite a number of improvements will be in the next release.

New Features/The Next Release

Of course feature improvements haven't been forgotten about. The two main things I am focusing on right now are bug fixes/menu improvements, and the Moderator CP. This will be the first version that will allow a moderator or administrator to unapprove or approve uploads, and the moderator CP will create a list of all unapproved uploads. It's nothing fancy yet, but today I got it fully functional. You can "soft delete" an upload by unapproving it, and all uploads currently require approval. (I'm in the process of coding in some backend settings to allow administrators to control their preferences.)

Of course the next POC release will also include the alpha version of user profiles that were in the works after the last release. I haven't done anything with the blogs yet, so don't expect anything fancy there, but the profile framework is shaping up nicely. Another feature I'd like to get to before the next release is recoding the comments. The comments currently are a hot mess and are extremely buggy in every way imaginable. It doesn't help that I'm using session variables either to store the page that the comment belongs on, that will be fixed. Tongue

Look forward to further updates. Only a couple of days of coding have been done since I resumed the project, but a lot of progress has already been made. My goal is to get the next proof of concept release out sometime next week, if all goes well. Big Grin
Finally! I was really looking forward to this until you semi abandoned it. Tongue
Yeah, the project was on a hiatus for way too long. Real life got in the way, and being that it is a large project, it can be stressful to code at times.

A good amount of progress has already been made just today, getting some bug fixes in order and what not. I'm currently working on the ACP at the moment, to add new settings for administrators. The user interface for some things was already put into place without the functionality behind them, so today I'm reworking some of that to complete what has been left unfinished.

I'll try to post some screenshots once some more progress is made there. The ACP won't be too pretty, but at least it should be more functional soon. Tongue
Alright, I'm currently in the process of experimenting with moving the settings to the DB based system over the flat file system. I imagine I'll keep the flat file API (might be useful at some point) but it's a real pain once you start adding a bunch of settings in.

Currently I have no plans for a DB-based API. I'm going straight in and literally coding every single setting individually. Bleh, this isn't going to be fun. Tongue We'll see if this turns out to be any easier.

Probably the hardest part about coding this so far is the lack of a good API to use. I've experimented with different APIs, and even have a DB API that I was using, which I've decided against continuing to use. This will be a lot of cleanup... and the code still lacks a good localization system, templates, etc...

Basically, I'm trying to get it fully functional first. After that, I'll focus on figuring out what I'm doing for templates, plugins, etc... As this is my first major, full scale project, I'm pretty much learning as I go.

Users browsing this thread: 1 Guest(s)

Makestation Theme/Design Selector

Contact Us | Makestation | Return to Top | Lite (Archive) Mode | RSS Syndication 
Proudly powered by MyBB 1.8, © 2002-2022
Forum design by Makestation Team © 2020 - a modern day time capsule | Makestation Ajax Chat Hosting