I have been thinking about this for really long time without reaching an optimum answer.
First of all, I’m a medical doctor who loves programming but never really studied it, except for home learning and lots of years of playing around with code in my free time.
Currently I’m trying to build a small project to manage my clinic, to do that I started by created a list of options I want to be able to do.
Example:
- active patient record.
- authentication with different roles (eg. patient,nurse,dr)
- appointment schedule (include calendar to schedual vacinations/surgeries etc with a reminder)
- allow doctor to create his own plugins.
- dashboard for doctor to view his statistics
Then I started with codeigniter/mysql/php/jquery and started coding.
My steps during development:-
- 1st database.
I started by creating all my tables that I will need.
- Created all my models to handle these tables (1 master model that handle basic read/write/update/verify while also considering my table relations
After that I start to code my views and controllers. I first created view HTML, then create controller that will handle this view, and started coding functions to make the view interactions work.
Example when coding the appointment view(controller booking.php):
created this layout and made table td’s clickable,
when user click : jquery get (booking/add_patient_form) and pop it up
when user save : post to booking/save -it save appointment then reload index() function
etc.. and I continued same steps of creating view then its controller -that contain all the logic this view needed – to accomplish whole project.
At the end I had all my target functions working fine, but since there was no PLAN from beginning and as the whole project was punch of brain storming and debugging with no what so ever plan, after I went so far in this project i find my self stuck with maintainability and flexibility! and unable to link them together.
I have feeling that every page on website is completely isolated from other and I can’t even recall how each page is loaded and what functions are inside without peeking!
Is there anyway I can recover this and get a design out?
5
Your question – what’s the process for developing a piece of software – is a hotly debated topic; just google “software methodology” to see how deep this can of worms goes…
There’s no commonly accepted answer. In fact, if you ask 5 programmers, you’ll get 7 answers, in my experience.
I’d recommend buying Steve McConnell’s “Code Complete” to see the lower-level coding practices – things like how to lay out your code, how to comment it, how to test it. I’d recommend “Domain Driven Design” by Eric Evans for an overview of how to structure applications at an architectural level. I’d recommend “Agile Software Development: Principles, Patterns and Practices” by Robert Martin as an overview of how to “grow” software over time whilst maintaining quality.
Another developer is likely to reject all of these books, and point you at UML, the Rational Unified Process, and code generation. There’s no right answer!
1
Steps/Stages to design of Website Workflow
- Concept
- Discovery
- Content development
- Design
- Development
- Launch
- Post-launch
Detailed Resources
- Web Design Process by University of Texas
- How to Create a Standardized Web Site Development Workflow
- The complete no-nonsense step-by-step guide to designing web
sites - Web Design Workflow – Complete Overview
- A design process revealed
- Web Style Guide Online
I would advise you to keep the database structure and generate new PHP code with PHP Generator for MySQL created by the company SQL Maestro. It really worked for me. I use it a lot and I am really happy with it, especially the possibility to tweak the PHP code to my own needs. Furthermore, they incorporate your requested new features in their updates and have nice tutorials how to tweak the code. To better understand have a look at this demo project.
On their website the following product description is given:
PHP Generator for MySQL is a MySQL GUI frontend that allows you to generate high-quality PHP scripts for the selected tables, views and queries for the further working with these objects through the web. Key features include:
- Data management: add, edit, delete and copy records
- Customization of the HTML appearance
- Filtering and sorting abilities
- Data protection with a lot of security settings
- Master-detail presentations
- Event-driven content management
- Data export to PDF, XML, CVS, Excel and Word
PHP Generator for MySQL produces clear and easy to understand code that can be used as is or modified in any way you need.
Save the huge costs of hiring a programmer, learning any programming language, or buying an expensive software – all the code is automatically generated for you!