PHP / MySQL Frameworks for a basic CRM System [closed] - php

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.

Related

How to publish data residing in an external database using Drupal? [closed]

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 7 years ago.
Improve this question
I'm very new to Drupal and was getting a bit of mixed information about views so I wanted to see if anyone can set me on the right path.
Here's my situation. I have a separate database (on the same Drupal database server), that has a lot of data that's maintained by another team. We want to publish that data to the web and after getting some suggestions it looks like Drupal views is the way to go.
The problem is, I'm not sure where to go from there. I read the documentation and just watched the views tutorial on Lullabot, but my data isn't in the fields columns at all.
I read one document that said I had to "describe" my external database to Drupal but wasn't sure how to do it. I found a few tools on drupal.org (services, etc..) that said they can analyize my database and report the structure back to Drupal but I can't figure it out.
Basically the end result I want is two things. First is to simply display the data as is from my external database onto a Drupal node (the only catch is, each page is specific to a database entity so although the data format/display is standard, the data itself will change with the links, for exmaple, www.example.com/ibm should only provide our data on ibm and as the company name changes so does the data that's displayed) and later I might want to run some calculations on the data before it shows up.
Anyone have any suggestions of how to do this or any tutorials?
If it helps, I'm using Drupal 7.
On a side note, if it's not possible to do this in Drupal or even if it is, would it be better to create this in PHP and then somehow wrap it in Drupal? I'm debating this because I think I know how to do this in PHP and it might give me more control on the result (but i'm being a bit lazy because I'm thinking maybe Drupal can do it for me :-)
Update: Okay, now I'm even more confused. I have looked into views and still can't get it to integrate with my database. I have looked at schemas, and feeds as a way of either describing the database or getting it to replicate with Drupal. I'm not sure if I'm going the right direction (or what the right direction is) because so far everything I am trying seems to be a dead end. Can someone suggest a tutorial? Or relate their experiences getting this done? I simply want to display content from another database onto a page (when users select a specific stock ticker), I may want to allow users to customize it later(which is why I think views are needed).
As far as connecting to the database, in settings.php you can add additional database connections and use the db_set_active('connection_name') function in code to switch your active db connection to that source. Building plugins for views - that's a big subject far beyond the scope of a single answer. All I can say is Google it and good luck, and come back with specifics :)
Module Forena can be used to query (not update) all sorts of databases, such as a MySQL database, and to establish database connections to the external databases. And it comes with various hooks to use Forena from within another module.
For more details about Forena, 2 types of documentation are available:
Community documentation.
Documentation that comes with Forena, which you can access right after install and enable of the module. Checkout the demo site for an online example of the current:
Forena documentation - use the link 'Reporting documentation' or visit relative link /reports/help.
Forena samples - use the link 'Reporting samples' or visit relative link /reports/samples (these samples are fully functional, so make sure to experiment a bit with it, such as the drill downs available on the SVG Graph sample).
The newest 7.x-4.x version also includes an amazing (I think) UI for either creating your reports (the WYSIWYG report editor) and/or for creating your SQL queries (the Query Builder).
Here are some variations of the mysql database part:
Using a SQLite instead of MySQL database: the Forena samples actually get shipped including a (Tiny) SQLite database. Go check it out in the demo site: the data shown there are data contained in the sampledb, which is in SQLite format.
Forena comes with a full suite of Supported database connections ... such as MS SQL, Oracle, Postgress or any PDO compliant variation.
Enough reasons for considering giving Forena a try? While doing so, use it's issue queue for any type of support/docu requests you may have.
Be aware: I'm a co-maintainer of Forena.

database design: best practice for designing a forum table [closed]

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 2 years ago.
Improve this question
I wonder if there is any practice when designing a forum. I want to design a couple of forums. yes there are two different types of forum at least. one is for a selective members and another is open for any public members.
In the forum, the member can initiate a thread, then other members can respond to it.
So I have this rough idea for the structure of this type of forums.
I'd name the forum table as 'strings' table. this is the structure I can think of,
str_id for the auto increment id
str_tilte for title of the thread
str_content for content/ text of the thread
str_follow for you to choose whether you want to follow this thread or not
str_approved for the admin to approve or reject the thread
parent_id*1
mem_id member id who initiates the thread or who responds to the op
cat_id*2
str_created
str_updated
*1 eg. if the data injection is an op thread then the parent id is itself, if the injection is a response to the op, its parent id is the str_id of the op.
*2 this column is to store the category id of the current data injection. if the injection is a selective forum then it is 1, if the injection is public forum then it is 2.
not sure if I am on the best track, but please let me know if you have any better ideas.
thanks.
edit:
thanks for some reply and suggestions that using phpbb.
just had a look and downloaded phpbb. it is 101% sure that I won't go for it. it is a whole programme like Wordpress or any other PHP frameworks (like Zend). I have an independent framework running this website, so I don't want to run another programme/ framework to mess up the site's backend structure, etc.
if I the site is only a pure forum website, then maybe I would be considering phpbb. but the forum is just a sub feature of a holistic website in my current project.
Don't start with a table, start with a conceptual ER Diagram of your base entities, forums, threads, replies,members, keywords, categories etc. and express the relationships first.Then get into logical design mode and define the tables needed to implement the functionality. As suggested have a peek at the way phpBB tables are organized.
I like to do my first diagram on a printing whiteboard or on paper then move to a diagramming tool for logical design.
I think there's still some room for a 'better' forum, so good luck.
Greetings.
As i previously recommended in comments to your question.
I strongly recommend you to set up local installations of other open source database driven forums in your machine, in order for you to have a strong idea and base of what other developers did when they develop such forum applications, not just looking at the database tables but also to the code, organization and design of the forum. I think it proof it self very useful to open your eyes to possibilities for your own forum application
A few examples of database driven forums:
phpBB
Simple Machines Forum
XMB Forum
I usually say the best way to learn is trial and error but let me also point out. Even this forum application your creating, its just for small and private use for your websites.
You should consider that your forum application one day may become popular and you might desire to turn it public like these previous ones mentioned, or you just want to add some new features.
In this case i suggest you plan your Code and Database Architecture very well, planning ahead for future upgrades.
Also you should take MikeAinOz advice very seriously in his answer and start by
Conceptual ER Diagram of your base
entities, forums, threads,
replies,members, keywords, categories
etc. and express the relationships
first.Then get into logical design
mode and define the tables needed to
implement the functionality
Thats the best answer to this kind of question i ever seen.
Regards & Good Luck.
My thoughts...
str_follow shouldn't be in this table. It should have its own table that links members to subscribed threads.
I'd recommend having parent_id null if its a top level thread, it makes more sense.

Admin auto generation [closed]

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.

User interface for an intranet system [closed]

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

CRUD for MySQL and PHP [closed]

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 have to make some database requests with PHP on a MySQL database.
Question : What is the best (simpliest) framework to get thing done right CRUD (Create Read Update Delete)?
I also have to populate the database, what is a good tool to do that. The only one I know is SqlMyAdmin, wich does not look good. An online tool would be great.
Your experience is valuable: tell me what do you use and why ?
I have taken a look at CodeIgniter, looks nice, what do you think... overkill ?
For lots of operations (especially CRUD, which work out of the box once you've written the schema files), the ORM Framework Doctrine is really great.
If you want to go farther than just DB access, you might take a look at the PHP FRamework symfony, which provides an admin generator (there is even a screencast about that one).
(And has great documentation, such as the jobeet tutorial)
(BTW, symfony uses Doctrine as ORM ^^ )
But maybe it's a bit overkill (and requires a too big learning curve) if you need something simple...
To load data to MySQL, what about LOAD DATA INFILE, which (quote from the docs) "reads rows from a text file into a table at a very high speed".
I recommend GroceryCRUD because of the good engineering and documentation
Copy files into your web folder
Configure MySQL database
Specify MySQL table name
=> You get a paginated JqueryUI table with create/edit/delete buttons.
create/edit opens a form page based on the MySQL table schema. For example, a boolean, a varchar and a text get turned into a form with active/inactive radio buttons, a text field and a wysiwyg html editor.
Note: GroceryCRUD is built on CodeIgniter so you will have a copy living in your admin directory. You don't have to use it for building your main site.
Security Advisory: Any library can have undiscovered security vulnerabilities, so it is recommended to minimize exposure by protecting your copy of GroceryCRUD with BaseAuth and permitting SSL access only.
I'd second Pascal's comment re Symfony (I would uprate but not enough credit :-() - Symfony has a great admin generator, and once you get your head around the app->module->actions concept, it's straightforward and the documentation is fantastic, even if it is sometimes easier to search Google for it ;-)
Failing that, CakePHP is a lot better now than it used to be back in the early days, and you can get going with the minimum of fuss, particularly with their scaffolding which will help you set up a basic CRUD-style setup. Their documentation is also pretty awesome and very easy to read :-)
If solutions such as Doctrine, CAKE, CodeIgniter, etc. seem like overkill for what you're trying to do, I'd recommend a one-file PHP script I built that lets you CRUD hierarchical data in MySQL:
http://coding.pressbin.com/109/PHP-One-file-CRUD-front-end-for-hierarchical-MySQL-data/
Why do not you try to code it from scratch as CRUD is a common task of programming.
There are lots of good tutorials:
1>PHP PDO + Bootstrap Twitter: http://www.lizardgrid.com/blog/php-crud-tutorial-part-1/
2>JQuery + PHP: http://www.codeofaninja.com/2013/05/crud-with-php-jquery.html
I am currently testing JqGrid (a Jquery Table Library).
I have tried Grocery CRUD: looks nice, but its Datatables theme (which has column filtering ability) won't work with server-side processing, that's why I dropped it.
You may have a look at Cygnite Framework
It does basic code generation. Controller, model, views, layout, pagination, form component, required field validation, with bootstrap template etc. all these generate with simple command. You may alter the code based on your need.
Here is the tutorial- Generate CRUD application within 2 Min
Worth looking.
I'd say that totally depends on what you need to do.
You do know phpMyAdmin, right? You can import from a lot of formats with that tool.
Or do you want to develop an application with simple CRUD operations? Then a framework like Symfony or Zend Framework would be the right thing to be looking for.
I developed this script which reverse engineers from a MySQL database a set of stored procedures that list all the rows of a table, a single row based on the primary key, updates/inserts based on the primary key and deletes based on the primary key. It assumes that you already have your tables created with the primary keys setup per table and it generates the MySQL stored procedures for you. I have found that this is more efficient than similar types of solutions developed in PHP.
Something like http://www.notorm.com/ might be more appropriate than Symfony. Whilst I like Symfony and have used it to great effect, it is not simple.
Likewise with Codeignitor I would argue that any full stack framework (Laravel, Zend, Wii etc . . ) would not fit the remit of "simple".
A fairly straight forward and effortless crud system i found is https://github.com/usmanato360/crud360 its very easy to setup and there are loads of advanced features. It is unlike traditional crud systems that generate model classes etc.. it is just a single class that takes care of everything dynamically.

Categories