Page 1 of 1
Building an admin system and need advice (FRAMEWORK classes)
Posted: Mon Jun 19, 2006 1:22 pm
by Luke
This is going to start as a very generic topic because what I hope to accomplish with this thread is perhaps some help throughout a somewhat large project (by my standards anyway).
What I am preparing to do is create an administration system that grants all of my company's clients privileges to modules such as our File Management Module, News/Article Management module, PHP Forms Modules, etc.
I currently only have a File Management Module. I would like some guidence on things I should do to make sure that this system is modular, and easily maintained, upgraded.
I would like to start with the following question and perhaps move on little by little with whoever is willing to help (and maybe some others may learn from this as well):
What kinds of things are necessary to make sure that all of my modules are easily upgraded? I have seen talk on these forums about having a central script (or series of scripts) that updates all of the customers' modules. I have also seen talk about all customers' modules just pulling from one central script.
I apologize if my intention with this thread is somewhat unclear, but if you have questions, just ask and i will try and clear things up. Thanks in advance to anybody interested in helping me in this process.
EDIT: Also any suggestions for database interaction classes / Authentication classes etc. would be appreciated
Posted: Mon Jun 19, 2006 1:39 pm
by santosj
Well, I find that when you have a large project such as this, it is better if you start writing stuff down to 'talk with your thoughts'.
You'll find a few things:
First, you'll be able to put your thoughts in a coherent matter (at least to yourself, anyone else wouldn't know what to think), to see exactly how much you know about what you want to accomplish.
Second, you'll have some design to follow through on. It doesn't have to be UML, but it is a start on how to describe the project to others. You'll think more concetely than abstractly about the task.
Finally, build a few small tests and see how they function. Don't jump straight into the project proclaiming that you are god, I do that and it doesn't always work (okay it almost never works the first time anyway).
I do none of these unless my brain stops functioning. Which it currently is on the project that I'm working on. I'm getting it little by little because it requires a lot of research and thought processes.
However, I'm also having some trouble comprehending this subject also. Go with a Page Controller or set some configs in a file that calls the main script that calls all of the other scripts?
Re: Building an administration system and need advice
Posted: Mon Jun 19, 2006 2:14 pm
by Christopher
OK ... there was a lot implied in what you wrote, but I only saw one question mark so I will address that. I assume that if you want info about the access control system you alluded to you can ask more questions.
The Ninja Space Goat wrote:What kinds of things are necessary to make sure that all of my modules are easily upgraded?
I think the key here is to really implement modularity (as redundant as that sounds). By that I mean you want your modules to me as physically and technically independent as possible. That probably means each in its own directory or file with clear conventions for naming and orginazation. It also means minimizing dependencies of the modules on the rest of your application and clearly defining the dependencies that must exist.
The trick to both of those is going to be good design. You want conventions and interfaces that discourage mistakes, expose problems early, and allow flexiblity where needed.
What have you got so far?
Posted: Mon Jun 19, 2006 3:09 pm
by Luke
What I have so far is:
A file management module with a user management system
Part of a news/article management system
Part of a form processing module
I would like for all modules to use the same classes for common functionality such as database interaction, session handling, user administration, authentication, etc.
I would also like for the system to have two different kinds of users:
GLOBAL or SUPER users - Use one log in that logs into ALL modules
standard users - Per module users that can only log in to the module they are appointed to
Each user will have different privileges depending on what module they are working with as well.
So I guess what I should do is start writing this all down and begin organizing it the best I can.
I think what I really need to get me started is those common functionality classes. If anybody would like to offer up a specific class or set of classes for these purposes, that would be appreciated... otherwise, I've got some that I have created that seem to work OK for me and maybe i can just add on to them as the project progresses.
Posted: Mon Jun 19, 2006 3:47 pm
by Christopher
So are you looking for tips on how to design modules to be modular? Or how to build the Access Control system to support your two user types?
Posted: Mon Jun 19, 2006 3:54 pm
by Luke
arborint wrote:So are you looking for tips on how to design modules to be modular?
Yes. I am interested in opinions on the methods of making a specific modular web "programs"
arborint wrote:Or how to build the Access Control system to support your two user types?
Yes. Like I said, this thread is starting off pretty generic, but I would eventually like to move into this.
I want to begin with a basic framework (database connection/interaction classes, user authentication, etc.) and build from there.
I think it would probably be wise for me to break this off into different (more specific threads) the further along I go, but for now I am just rounding up information and opinions for the project.
Posted: Mon Jun 19, 2006 4:17 pm
by Christopher
The Ninja Space Goat wrote:I think it would probably be wise for me to break this off into different (more specific threads) the further along I go, but for now I am just rounding up information and opinions for the project.
Or deal with them serially and focus on one first.
Posted: Mon Jun 19, 2006 5:12 pm
by Luke
Here are my objectives with this application:
to build a modular system for my company to to administrate its clients’ web site functionality. It will allow us to control which modules are available for use with their web site.
Secondly, it will allow for us to easily upgrade the modules it manages. With each upgrade to each module there will be an accompanying version number for that particular module.
Lastly, it will allow clients a central location to control the settings of their modules as well as their site as a whole.
Posted: Mon Jun 19, 2006 5:30 pm
by Christopher
The Ninja Space Goat wrote:to build a modular system for my company to to administrate its clients’ web site functionality. It will allow us to control which modules are available for use with their web site.
Creating the list of modules to choose from does not sound difficult, but it might be nice to have this system actually search through the modules directory to get a list of what is available. Implied in this point is the ability to install the module -- and what that means.
The Ninja Space Goat wrote: Secondly, it will allow for us to easily upgrade the modules it manages. With each upgrade to each module there will be an accompanying version number for that particular module.
If it does not break BC then you can theoritically overwrite. Otherwise you will need to manage dependencies -- so keep is simple.
The Ninja Space Goat wrote: Lastly, it will allow clients a central location to control the settings of their modules as well as their site as a whole.
I would recommend exposing the admin interface just like you expose the module's functionality -- convention and interface.