Page 1 of 1

An idea I'd like to develope...

Posted: Tue Nov 29, 2011 7:46 am
by JamesR
First off, as some may notice, this is my first post to this community - and the reasoning for that is because I've worked "with" but never directly "in" PHP (meaning I've altered, but never developed).

So my project is, very likely, overly ambitious for my limited ability - but all the same I want to lay out the idea here in the hopes that someone can point me in the direction of some good tutorials for developing user-based, database-regulated environments... (just saying that makes me feel over my head)

I'm assuming everyone has seen a simple web directory where you're presented with a text listing of all included files? What I'm looking to do is provide a completely re-vamped version of this, in a way that would meet the needs of both home and business users... My notes read as follows:

Goal of the project: Provide an astetically pleasing, user permissions based GUI for File Directories supporting features such as comments, "download all", "other versions", "open", etc.


---Detailed overview---

To walk you through it... After setting up using an assisted interface in which you would enter your Database information and assign a password to the admin account, you would

log in and create user accounts with different global permission levels (more on that later).

A user would log in, and be taken to a screen where they would have access to all directories that they've been given access to, or alternatively the user could create a new directory.

Upon creating a new directory, the user is taken to a dialog where he or she is asked to name the directory (requiring a unique directory name), upload multiple files, upload a background image (if one is not uploaded, the default background image will be used), upload a directory icon image (if none is uploaded, default folder icon image will be used), and add users to the approved users list with varying permissions (such as "view", "download", "revise" (upload a new version of an existing document), "comment", "upload" (upload new documents), "delete" (remove comments and files), etc.).

The users can then access the directory and see all uploaded files in a icon-based grid layout, with a menu bar at the top that allows for mass download, logout, uploading, etc (based on user permissions, of course). By mousing over the icons, they'll be presented with the option to download the selected file, view and make comments on it, see all revisions, or (if permitted to do so) delete the file.



---Administration Panel---

The administrator(s) would have access to the following menus...

Global Settings:
-Registration (Open registration (where users can register their own accounts and automatically be defaulted a set level of permissions, configurable from the User Groups menu) or Invitation only (Where in the administrators have to create and issue accounts to anyone seeking access to the service)).
-Users (where users can be assigned into groups, have passwords changed, delete users, ban users, change avatars, etc).
-User Groups (where global permissions can be assigned, such as access to the administration panels, the ability to create directories, the ability to moderate directories, etc).
-Theme settings (where default icon images and background images are changed. Not really "required" as these images could just be replaced via FTP, but it'd still be a nice feature if nothing else).



---File Structure---

The filestructure should ideally be something like this:

dirs/ -- The "directories" directory, where new folders will be created to store and organize uploaded materials. Directories here will all contain an index.php to which calls for user login.
[index directory] -- This is where the primary index.php, login.php, logout.php, comments.php and any other session-specific php documents would be listed.
imgs/ -- This is where the icon pngs, the default background image, the default folder icon png, the overlay images (such as little speech bubbles to indicate comments, a plus sign to indicate a newly added file (or new since the user's last viewing of that specific directory), an exclimation point to indicate a newly revised document, etc) will all be stored.
imgs/bgs/ -- This is where user uploaded background images will be stored.
imgs/icons/ -- This is where user uploaded icon PNGs will be stored.

Re: An idea I'd like to develope...

Posted: Tue Nov 29, 2011 8:44 am
by mikeashfield
JamesR wrote:I'm assuming everyone has seen a simple web directory where you're presented with a text listing of all included files?
I've seen one, and seeing as this is (at least that I was able to see) the only question you want answering, I'd better answer you. Yes I've seen what you're describing. Good luck with it.

Re: An idea I'd like to develope...

Posted: Tue Nov 29, 2011 9:02 am
by JamesR
...Not sure if you're trying to troll or if you missed the "I want to lay out the idea here in the hopes that someone can point me in the direction of some good tutorials for developing user-based, database-regulated environments..."

Not everything requesting response needs to come in the form of a question - although I suppose if I had to form it as a question, it would be this:

"After having reviewed the idea submitted, what tutorials (preferably focused towards the creation of a similar web service (such as a forum board, perhaps)) would you recommend me to begin with?"

Re: An idea I'd like to develope...

Posted: Tue Nov 29, 2011 9:44 am
by mikeashfield
JamesR wrote:...Not sure if you're trying to troll or if you missed the "I want to lay out the idea here in the hopes that someone can point me in the direction of some good tutorials for developing user-based, database-regulated environments..."

Not everything requesting response needs to come in the form of a question - although I suppose if I had to form it as a question, it would be this:

"After having reviewed the idea submitted, what tutorials (preferably focused towards the creation of a similar web service (such as a forum board, perhaps)) would you recommend me to begin with?"
JamesR wrote:(just saying that makes me feel over my head)
Starting with something a little simpler, building a good understanding of PHP and web design.
These sources should come in handy:
http://www.php.net/manual/en/
http://www.w3schools.com/php/
http://www.hotscripts.com/category/scripts/php/
viewtopic.php?f=1&t=121089
http://www.google.co.uk/

Re: An idea I'd like to develope...

Posted: Tue Nov 29, 2011 2:03 pm
by maxx99
If you're asking if you can do it? Sure you can :!:

If you want a side project to improve your skills - this one is great. You an develop your abilities in a lot of directions:
- design (both architectural and graphical), file storage (encryprion, backups), upload-download scripts, environment configurations, reporting, security, tests etc.
You are sure able to develop something that could handle couple of your friends exchanging files.
meet the needs of both home and business users...
If you really want to GO with this , make some money out of it and you have no experience in IT. Just forget it :(
Technical requirements for business users only, will eat you alive... :banghead:
99.99% uptime, firewalls, TBs of storage, Gbps of bandwitdh, backups, failover procedures, 24/7 user support service and most important SECURITY...
You will need a great team, a lot of hard work and investments just to try to go near enterprise solutions like MS Sharepoint, which more or less can do things you've described :)

Don't get me wrong you can still try, a challenge is a challenge :wink:

mikeashfield posted you some good links.
Let me add some more things you can google :) you'll find tons of tutorials for every one of them
Zend Framework, Symfony, Smarty (for backend)
Dojo Toolkit, JQuery, Mootools (for frontend)
MySQL, PostgreSQL, MSSQL Express (for DB)
XAMPP, Zend Server CE (app server package)
Zend Studio, Netbeans, Eclipse PHP (IDE)
SVN, GIT (version control)
Firebug, Web developer (great Firefox plugins)