[Catalyst] Best Practices - an application.

Mojo Nichols mnichols at mojosoft.org
Sat Sep 16 12:14:46 CEST 2006


Background 

In an effort to learn more about catalyst and provide some
documentation/feedback I'd like to post building an application to this
mailing list.  I hope it generates discussion, helps myself understand
things better, helps others.  I'm going to create a thread of the
creation of an application.  If this is not appropriate please let me
know and I will cease the thread. 

The code, model and view are all open for review and comment. In an
effort of full disclosure this is a project that I need quickly at work,
but don't have time to do at work, hence I'm doing it on my free time at
home.  I appreciate any help, but I understand people are busy, so
please don't consider this post a question that I'm desperate to have
answered. Also, I am wearing protective gear and blunt, constructive,
destructive and humorous comments are welcomed.  

Note: The title indicates where I hope to go not where I believe I
currently am.

I have chosen this application because I feel it demonstrates a lot of
things I don't get, but is fairly self  contained, and simple. I also
feel that it has a broad application and may actually be useful for
someone else. 

Format, I've debated whether to <snip> much from the building of this
application, and currently my thoughts are record everything and if it
ever gets summed up it can also be cut. So please bear with  verbosity.



Database Management Utility 

The goal of this project is to create a web application that manages
multiple heterogeneous databse users. The initial goal is to simply
manager all users for multiple databases via one interface.  The
functional requirements are: 

record "systems" where systems are a server containing one or more
database servers handling one or more databases. And create is simply at
this point creating a record in a database.   

record "database servers" The details required to connect to various
database servers on above system ie (postgres, mysql, redbrick, oracle,
etc).  I believe it is best to have only one system on a server, but not
a requirement.

record "roles" Record the various roles that a database has. 

record "users information"  Record the details of the user.  ie
username, roles, location, group, etc. 

change password allow a user to change their own password for all
systems.

db change password allow a dba to change a users password, email the
user a temporary password link and ask them to change their password.

copy one or more users from one system to another. 


That's it for tonight,  I figure this will give some opportunity for
some debate on whether this is worth while or not, or if it is a good
application for it. 

Thanks all,

Mojo 

 Username, Location, Group, Role(s)
$ catalyst.pl DMU 
created "DMU"
created "DMU/script"
created "DMU/lib"
created "DMU/root"
created "DMU/root/static"
created "DMU/root/static/images"
created "DMU/t"
created "DMU/lib/DMU"
created "DMU/lib/DMU/Model"
created "DMU/lib/DMU/View"
created "DMU/lib/DMU/Controller"
created "DMU/dmu.yml"
created "DMU/lib/DMU.pm"
created "DMU/lib/DMU/Controller/Root.pm"
created "DMU/README"
created "DMU/Changes"
created "DMU/t/01app.t"
created "DMU/t/02pod.t"
created "DMU/t/03podcoverage.t"
created "DMU/root/static/images/catalyst_logo.png"
created "DMU/root/static/images/btn_120x50_built.png"
created "DMU/root/static/images/btn_120x50_built_shadow.png"
created "DMU/root/static/images/btn_120x50_powered.png"
created "DMU/root/static/images/btn_120x50_powered_shadow.png"
created "DMU/root/static/images/btn_88x31_built.png"
created "DMU/root/static/images/btn_88x31_built_shadow.png"
created "DMU/root/static/images/btn_88x31_powered.png"
created "DMU/root/static/images/btn_88x31_powered_shadow.png"
created "DMU/root/favicon.ico"
created "DMU/Makefile.PL"
created "DMU/script/dmu_cgi.pl"
created "DMU/script/dmu_fastcgi.pl"
created "DMU/script/dmu_server.pl"
created "DMU/script/dmu_test.pl"
created "DMU/script/dmu_create.pl" 






More information about the Catalyst mailing list