Hi all,
I'm currently developing an application that is supposed to be a community database system where community groups can come and host their databases online, while being able to manage them through the browser and display the information online for the public (ie. web users) and allow them to search the database for information.
This is basically the structure for two of the databases planned to run on this system:
Community Databases (CD)
|
| Community Library Project (CL)
| |
| | CL Online Search (OPAC)
| |
| | Individual Organisation's Search plugin
| |
| | Management Console
| |
| | Add/Edit/Remove Records
| |
| | Checking In/Out
| |
| | Report generation (ie. spine label)
| |
| | User Management/Backup/Template Design
| |
| | Add/Edit/Remove Organizations/Org Users
|
| Community Group Listing Project (CGL)
| |
| | Group Listing Online Search
| |
| | Individual Organisation Search plugin
| |
| | Management Console
| |
| | Add/Edit/Remove Records
| |
| | Report generation (ie. the copy of the listings for publication)
| |
| | User Management/Backup/Template Design
|
| CD Management Console
|
| Add/Edit/Remove Projects
|
| User Management/Backup/Template Design
|
|
Now this might seem confusing and very vague, so please let me know if I need to explain more. But in general what I'm trying to accomplish is to create an online system that allows a central group to use the "CD Management Console" to create new databse projects, assign users to it and allow those users to create their own templates (using a template designer that doesn't require them to have to write php code to retrieve data, some sort of wysiwyg editor) and have a public interface as well as allowing different sites to include the search interface on their site and communicate with CD system and send info back and forth.
Essentially, I want to be able to create a backend system that is hosted on the main server that allows users to login, recognizes their role (superuser, project admin, project specific user, etc), grant them some tools (either specific to a project or global tools that allow them to create a new project, for example), allow them to add/remove/edit data, design templates, add/remove/edit users, and perform some project specific operations.
The first project is an online library catalogue program. I have already created the application, but I see that alot of the functions used in that system (add/remove/edit record/users/contributers,backup,report printing,searching, etc.) are common to all the other applications that this project aims to make available. Now my main questions is, has anyone created something like or close to this, or has any idea of what things need to be done/concidered? If yes, what design approach would you recommend? What opensource project can help me simplify my coding? I've read stuff about MVC's, but I'm not sure if that is the right way to go, or just developing a framework is all I need to do? Is this a situation where I need to start learning about web service development?
As you can see I have a vague idea of where I want to go with this (at least I think I do) but have no idea how to implement it. Any suggestions, resources, and examples are greatly appriciated.
Thanks alot
A