Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 11 months ago.
Improve this question
I create custom CMS sites and then go ahead for the backend/admin side. Is there any tool out there to automatically create admin side of my sites, for example, based on table relationships or whatever customization we may put in place.
PHPMaker seems to claim something like what I ask for but I have not used it. Any tool out there to auto-create admin side or PHPMaker is up to the point?
Did you mean something like this?
http://www.phpgrid.com/grid/
It visualizes all of the data and allows for editing, paging, sorting, kinda like MS Excell, or asp.NET gridview's.
If you're looking for something that automatically reads your database structure and deduces everything you might possibly want to do, and provides buttons for it - no such thing exists, well, not until software really begins to program itself.
phpMyAdmin :oP ?
There is nothing out there that can automate an admin control panel sufficiently. There are too many things that your data can mean. An INT could be an integer, or it could be a code where each value 0-9 represents some different value. What about other tables which are not visible to public eye, like the users database and the logs? What do you do with those? If you want a control panel that's worth two cents, you'll build it yourself. One of the main reasons for admins to stop using a CMS is that the admin panel is incomplete or confusing.
Symfony has such an admin generator:
http://www.symfony-project.org/screencast/admin-generator
You need a code generator that can read your DB structure and then generate your back-end based on a few additional definitions you may supply.
Like #animuson said, "there are too many things that your data can mean". However, only a limited subset of those "many things" is relevant to you, so you can associate a well-defined meaning (from that subset) to a specific field or data set. The code generator will then act on that specification and generate the correct back-end code.
Model-driven development will help you here because a model of, let's say, a table column, may contain only the definitions that are needed to properly understand the meaning of that column.
There are tools on the market for this, open-source and commercial, that will help you define your models and build your code generators.
Of course, there is an additional cost of building and maintaining your code generator, but once you have it you start reaping the benefits in time savings and less errors.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I'm looking to create a rather content-heavy (but low budgeted) website that is going to have a lot of different sections.
The post important requirement is that it be easy to user for the administrator who won't be very tech-savvy. What I'm looking for is to minimize them coming back to me whenever they want something on the website done (i.e. adding a contact form or something like that).
The website is, for the most part, going to be a simply two level design. Each 'section' (i.e. link the navbar) is either going to be a standalone page or a page that lists other pages in a section (these pages are what constitutes the second tier).
To give an example, the top tier may be:
Home | News | Events | Volunteer | About
Home and About will be standalone pages. News will list all sorted news items. Events will list events in a potentially arbitrary order (i.e. user-weighted). Volunteer will be a form that will send an email to the 'volunteer manager'.
These volunteer-type, data-entry forms are going to be used in multiple places throughout the website and I'd like it to be rather simple for users to create these forms and get the data back from them (either through email or a backend interface).Furthermore, a section should be capable of having both forms and normal pages.
I don't know how well written this post is but that's the gist of it. Normally I'd choose Drupal but I'm not sure the person managing the website is going to be able to use it without having to come back to me constantly (although I might revert to it depending on what's available).
I was wondering what other recommendations you guys have for a system that's easy and intuitive but powerful enough to handle what I listed above.
I should note that while I'd prefer it to be a PHP-based CMS any open-source CMS should suffice for this project.
I did a usability study of different CMS systems in college and I'd like to share with you some of my findings:
After evaluating three systems, an average was taken of their usability problem severity ratings for each category for each system (0 being no problem at all, 5 being severe usability problems). Drupal had an average rating of 1.7, Joomla had an average rating of 1.5, and PHP-Fusion had an average rating of 1.2.
My recommendation for beginners is PHP-Fusion since the interface is very easy to learn. Intermediate to advanced users should use Drupal for its huge collection of features and extensions. But if one wants a middle ground between simple and feature-rich, Joomla would be the best system for that purpose.
If you're interested in the full study, I can email it to you.
My initial thought would be Drupal but you have already mentioned it as probably being too complicated.
I know most web developers will flinch at event the mention of this, but have you considered Wordpress? Some of the custom themes are pretty sophisticated and mimic a CMS pretty well. The advantage of wordpress is that it would be very easy to maintain for someone who has no knowledge of php.
I'd still say go with Drupal; just carefully create a role for the main user of the site and don't give them full admin access. That way they are shielded from the full complexity (and from screwing things up).
Joomla is what i would suggest.
Wordpress sounds like the best idea. It's free open source and PHP.
Check out Contact form 7 for your contact forms, as they are very customisable.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Perhaps, using the word CRM is a bit of a misnomer, essentially, I'm looking for a fast and easy way to create a front-end so that others in my organization can utilize a MySQL database that I've created that manages lists of respondents to marketing research surveys.
I would need to do the following through the proposed front-end:
Update/Add/Remove contact information
Add notes to a contact's "file"
Import/Export data from/to csv
My experience with PHP is not extensive so I would like something that is simple and straightforward (read: I'm not looking for something that tries to do everything or is over complicated).
An answer to this question will be accepted if you can outline the reason(s) for your recommendation.
Database Schema:
Table 1: Contact Information
ID,
Name, address, email, etc...
Table 2: Surveys
Table 1 ID,
Field 1,2,3,4,5 (Logicals 0/1)
Table 3: Notes
Table 1 ID,
Date, Note, etc...
Table 4: Select Survey Data Storage (Demos for easy survey sampling)
Table 1 ID,
Q1,Q2,Q3,Q4...etc
One small framework comes to mind that will help make simple and secure user access and helps you update created database data without much hassel, it is called flourishlib, I've often used and seen used with the small routing controller Moor.
This helps you with:
Simple and safe user access. Supports ACL.
CRUD.
It has an ORM implementation, so you don't need to do much work in the data layer.
Simple page templating.
Posting and updating a record is as simple as $record->populate automatically taking values from a submitted form and populating values.
Great dir and file handling. Reading a CSV.
Check out the how do I page for a quick look on how flourishlib solves common problems.
Update: I'm unsure how the ORM of flourishlib will match your database scheme without any configuration. If you have problems the support for flourish by the lead developer at the forums is great. Anyway you don't have to use the ORM. You could use flourishes fDatabase. Or you could use an other ORM entirely. Two I find interesting is:
Repose
Outlet
Are you sure that you need framework? Your task is very simple and it can be easilly done without framework. Just organise files/folders layout, add some needed classes and you are good to go.
You can always try SugarCRM
It lacks a bit on documentation (mostly in the programming areas), but I think it will accomplish your goals.
In the end I actually went with Django. It's ridiculously easy to create database management edit/update/search tools using their ORM framework.
I think you should give a try to Lime survey.
It an open source application written in PHP with mySql as backend for survey development and managing samples.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
We have a "web application" which has been developed over the past 7 months. The problem is, it was not really documented. The requirements consisted of a small bulleted list from the initial meeting 7 months ago (it's more of a "goals" statement than software requirements). It has collected a number of features which stemmed from small verbal or chat discussions.
The developer is leaving very soon. He wrote the entire thing himself and he knows all of the quirks and underlying rules to each page, but nobody else really knows much more than the user interface side of it; which of course is the easy part, as it's made to be intuitive to the user. But if someone needs to repair or add a feature to it, the entire thing is a black box. The code has some minimal comments, and of course the good thing about web applications is that the address bar points you in the right direction towards fixing a problem or upgrading a page.
But how should the developer go about documenting this web application? He is a bit lost as far as where to begin. As developers, how do you completely document your web applications for other developers, maintainers, and administrative-level users? What approach do you use, where do you start, what software do you use, do you have a template?
An idea of magnitude: it uses PHP, MySQL and jQuery. It has about 20-30 main (frontend) files, along with about 15 included files and a couple folders of some assets -- so overall it's a pretty small application. It interfaces with 7 MySQL tables, each one well-named, so I think the database end is pretty self-explanatory. There is a config.inc.php file with definitions of consts like the MySQL user details, some from/to emails, and URLs which PHP uses to insert into emails and pages (relative and absolute paths, basiecally). There is some AJAX via jQuery.
Please comment if there is any other information that would help you help me and I will be glad to edit it in.
The developer leaves on Friday. However he can dedicate most of his 24 remaining hours to this documentation task. So, yeah, things are bleak but 24 hours is quite a bit... right? :-\
I would start by listing the main features that the application currently implements (update the initial bullet points).
Then, for each bullet point, write down the main requirements associated with that bullet point.
For each requirement, write down:
Anything quirky about that particular requirement
Where in the code that requirement is implemented (which php, inc files, tables)
This will give you something of a traceability hierarchy
Feature => Requirement => Implementation
It will also provide a good framework to jostle memories and write down gotcha's.
Then, comment each php and inc page.
Start with a header that outlines the purpose and which requirement(s) from the previous list are satisfied (reverse traceability from code to requirement).
Go through each php/inc file and comment the major actions/decisions/loops indicating what they are trying to accomplish and any design considerations that are assumed (e.g. "input is assumed to have been validated in the previous step").
When commenting the source code, you may want to use a tool such as PHPDoc so that you can generate documentation out of the comments.
One approach could be to arrange a series of hand over meetings. In these the developer would have to explain the code for each section.
He could write some notes in preparation for these, but having the other developers take minutes as well might help them understand the code. Also these meetings would be an opportunity to ask questions about aspects that aren't clear.
Don't try to do the whole site in one go. Break it down into smaller chunks grouped somehow - by function or by area. This means that your other developers aren't bombarded with too much information in one go, the original developer can concentrate on one area at time and you have a chance to follow up after the meeting.
Even if nothing "sticks" straight away there will be some documentation and some familiarity with the site when you revisit it later.
Another approach could be for the developer to give a series of short presentations on the site and how it was built. This might prompt him to remember why he took the approaches he did. This is invaluable when looking at code. If you know what problem it was trying to solve it's a lot easier to understand.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
The system that I am working on is an Intranet System only accessible within the company network to our staff. This is a primary system for storing data of all our customers. The system is entirely web based. There is a lot of data to be captured and held for each customer. At the moment opening up a customer record brings up all the information is input boxes, etc so that users can change them and click on the save button to update. There are about 40 to 50 pages organised with fields all over the page. There is a single top level navigation bar with a side navigation bar as well.
We have decided to work on the design and layout of the pages. The first step will be to create a Detail View and an Edit View. At the moment there is no Detail View, everything is shown within the same Edit fields.
Do you have any good ideas on improving usability on an intranet database system (web based)
It's a big question. The approach you mentioned is very much focused on the details when you might be better served figuring out the high-level design first. It sounds like you have a lot of data and might be overloading your users.
I would recommend that you do the following:
Ask your users. They live right down the hall, so this is easier for you. Ask them what kinds of things they go to the intranet for right now. (You can ask them to talk about hypothetical situations, but that's a different technique, and yields speculative data.) Ask if you can watch them use the intranet.
Aggregate their feedback and try to see patterns in it. Can you group data according to some logical classification? Is it better for you to provide a database-style search interface? What about both -- they're not mutually exclusive?
Look for examples. Look at websites that work for you: Stack Overflow? Amazon? Netflix? Whatever it is. What can you learn from how they organize and present information?
Mock up a simple prototype. And when I say 'simple' it could just be markers and sticky notes on a whiteboard. Use this low-fidelity prototype with a few users and see if they can figure it out. Don't "help", see what they make of it -- see if they can find what they're looking for.
Iterate. Do steps 1-4 over and over as you approach a design.
Good luck! This is a real challenge, but if you make a system that works well you will save your company a huge amount of wasted time; and time is money.
Well, this is really about "web user interface design" and the fact that you are on a company intranet really doesn't matter too much one way or another, except for the fact that you can assume users know certain things about your company already.
As for good interface design via a web interface, you may want to check out the other SO posts below:
Book Recommendations
User Interface Design
other search results
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I've been making the rounds for a CMS that I can use as an API, in a sort of "embedded" mode. I mean by this that I don't want the CMS to do any logic or presentation. I want it to be used as an API, which I can then use within an existing site. I don't want to be tied to the architecture of the CMS.
A good example of this is NC-CMS (http://www.nconsulting.ca/nc-cms/). All it needs is an include at the top, then wherever editable content is desired it's only a function call with a unique label. It's also perfect in the sense that it allows to differentiate between small strings (like titles, labels) and texts (which require a rich-text editor).
It's the only CMS I found that fits this description, but it is a little too light as it does not handle site structure. I need to be able to allow my client to add pages, choosing an existing template for the layout. A minimal back-end is required.
Wordpress also fits some requirements in that it handles only content editing and allows freedom for the themes by letting them call the content where and how they want it. But it is article-based and backwards, in that it embeds sites (as themes) within its structure, rather than being embeddable in sites like NC.
It's funny how checking out all the CMS out there, almost all of them claim that most CMS are not self-sufficient, that they do not handle application logic, while (almost) every single on I found with only one exception do so. Many are mostly article-based blog engines, which does not fit my need.
I would appreciate any CMS that fits the general description.
Creator of nc-cms here.
Adding on to nc-cms may be a realistic option, depending on exactly what you want to do. The entire nc-cms project is under 2,000 lines in total and the codebase is kept rather clean and simple for the very reason of per project/client expandability.
I wouldn't be all that hard to make one, honestly. Maybe as a wrapper around the nc-cms system after taking a look (possibly using and abusing ob_start/get_contents/end_clean).
I've been putting one together using PHP5 constructs and the Dwoo templating engine. Dwoo's template inheritance makes this a breeze. Right now it works by abusing the auto_prepend_file php directive to set up the template object and then just uses REQUEST_URI to process the template file (which is the actual file being requested). Then it outputs the processed template and exits. Kinda slick, but may not have that big of an audience.
I'm not exactly sure where you are placing the line between what you want this system to do and not do. Adding pages and choosing templates would seem to me to be in the realm of presentation, imo.
Would Joomla do it?
You should look into Osmek, its a developers dream. Its a centrally hosted system with no install. Osmek's API gives you access to your entire account, in just about any format, including JSON, XML, HTML, Serialized PHP, and template responses.