SaaS Application start from scratch - php

In terms of expansion of my knowledge, I would like to try to make an SaaS application. I dont really care of app funcionality, but I would like to learn about technology behind it. So my question is, would be someone so kind and show me where to start? some good reading, tutorials, articles or books? I am most interested in:
every user, after registration, has its own playground at username.domain.com
app should use some kind of master script which will generate content for all users
what are pitfalls of such app?
what technology backend is needed?
I am open to Ruby on Rails solution. Sorry for my bad english, hope I make it clear. Thanks

You want to build a multi-tenant solution.
Some things to consider:
Each one of your users should have an isolated database. This means you need to choose a database driver that can switch the database at run time. The id of database could be based on the user-part of the domain.
You can use Devise+cancan for registration. But you will need to redefine some Devise controllers so that they take in consideration the database.
You may consider reading Service-Oriented Design with Ruby and Rails by Paul Dix. It has a lot of interesting ideas that you can use to build an efficient service oriented app, which undoubtedly is the kind architecture that you should strive to create.
I suggest that you use Heroku to host your application. MongoHQ would be very nice for the databases - and they have an api to make CRUD on databases programatically.
And finally, remember to fully test your application. Capybara plus Steak for integration testing, RSpec for models and controllers and Jasmine for Javascript.
Also, don't implement your own payment system. There are a lot of providers that you can use like http://recurly.com/.

You may want to take a look at the Rails kit at http://railskits.com/saas/
If you prefer to build it your self, take a look at http://www.chargify.com to handle your payments.

Check the page SaaS application development using PHP in Zend Framework it provide details about building a SaaS appliation in PHP Language.

Have a look at this tutorial. It's exactly what you are asking for:
http://anantgarg.com/2013/06/10/build-a-php-saas-app-from-scratch/
This is for PHP, but you can easily adapt it to RoR.

Related

Migrate web application to PHP Framework

The company i work for are looking to move their php web application over to a framework. I personally haven't had much experience with php frameworks at all, so i need to read up on them and learn which ones are best.
My question is, is there a quick way to migrate a standard php/css/html web application over to a framework without having to rewrite a lot of it?
If not, what are some good reputable companies that do this.
Thanks in advance.
No, there is no quick way to migrate the application. Start with a requirements review, you may find that a robust CMS or cart will provide a lot of the features you need.

Web Application development

I want to develop an web application which i have Developed in c# previously.
Now I want to make the same banking application online. So please suggest me the process or Framework i should use to fulfill above.
I am new in web development but i have knowledge of JavaScript, PHP, CSS, HTML and more required for design and coding.
But i don't know how to use this knowledge please help me. Up-till now i have created UI for the project but i don't know where the code should reside how to call them etc.
Help will be Appreciated.
If you've already developed this in C# you can keep with C#. You can create C# web applications. I do believe, in fact, that this site is built using C#. :-)
If you want to learn another web language or technologies, there are plenty of tutorials, books, videos, and classes out there to help you.
Search around the web about developing web applications in .net. there should be plenty of articles covering that area. But basicly, i would say you should go for a Form based Web Application. That way you can make most use of the c# skills you already have. Read about that and the css html and javascript skills should give you a nice application. The deployment using IIS servers etc, you might need some help with if you dont have any experience with that. Maybe a nice article on the web could guide you through that as well.
Hope this helps!
Lookat sencha website,It has many products aimed on fast building web app, and you don't need to learn a lot about CSS,HTML,JS.
I would recommend you to try using Python(Django)or PHP(but I prefer the first one) on the server side + ExtJS for the UI(with ExtJS you can easily create great UIs).. But I don't really think that it's a good decision for business. For getting started - it's great but for business projects - I'm not sure..
As you already developed you application in C# then its better to use ASP.Net, so you can use your C# code as well, and if you don't have much knowledge in asp.net its really very easy to learn also, for that you have to go through some good books and some sites like asp.net etc
If you are already familiar with desktop development, you should take a look at Agile Toolkit, which is a web-based framework inspired by desktop development.
It is very helpful when you need a to produce a lot of inexpensive UI specifically for data management.

Port Codeigniter App to PyroCMS

I'm working on a web application in Codeigniter. I'd like to integrate the functionality of my application with a CMS so that site admins can easily update the site (about pages, blog, etc). Is this easily done with PyroCMS or another Codeigniter-based CMS? Will I need to drastically restructure my existing app?
From my own experience integrating an app inside Expression Engine I can say that a CMS changes the way you usually work with CI. So be prepared to make some adjustments. Every CMS will come with it's perks and differences. It shouldn't be a big problem though.
If you want to use PyroCms take a look at this doc first:
http://www.pyrocms.com/docs/2.0/developers/creating-custom-modules
If you're looking for alternatives, there are a lot. It seems almost everyone working with CI has made it's own.
Here are a few:
http://www.ionizecms.com/
http://www.halogy.com/
http://codefight.org/
http://www.getfuelcms.com/
Also make sure you check out CI Bonfire, it's not a CMS but does help you when you start up a new project with a basic admin wrapper, which is sometimes more useful than a CMS:
http://cibonfire.com/
This was answered a year ago and answered well, but my support guy has forwarded me a few emails from users asking about this page.
When people talk about Content Management Systems they often suddenly get the idea of rigid backends where you applications have to follow specific rules. While PyroCMS certainly has a few conventions you are free to build your modules just like they are a CodeIgniter application, on the frontend or the backend.
If you want to use Models, Controllers, Views, REST API's, SOAP, whatever the hell, then you can do that.
But, we also offer some awesome tools to make building modules CRAZY-fast. Hate writing CRUD? Well don't bother. Using the Streams API you can leverage the build in "Custom Data" system we use to rock out chunks of interface for you.
Using PyroCMS for your application is certainly not "hacking it into a CMS", this is the exact use-case it was built for.
If you have an existing application, while you can't "put PyroCMS into your app" you can certainly convert your application to a module easy enough.
The simplest way of doing it is to write your models around the CMS' database. Host the CMS at a subdomain with authentication for your admins. (admin.mysite.com) or something and then use the same database to power your front-end for your site.
Is it the best approach? Probably not.
Will it work? Yes.
You will probably find it hard to expand vertically & add new features if you're relying on a 3rd party CMS for data entry & backend.

What can be the best Practice for a Rapid Web Application Development?

I am coming up with a web application which will be primarily based on PHP. I would like to know some of the best practices and technologies that I can make use of to come out with the app as fast as possible. My team will be working remotely, so I want to know the best ways of collaborating through web resources too. I'm expecting in here, the options or a framework of technologies that can get me a great app in a shorter time.
I've given a small example out here. Please extend my plan and give me suggestions...
Server Side Scripting - PHP (CakePHP for rapid development)
Client Side Scripting - JS (JQuery - A JS framework for rapid development and compatibility)
Authentication - OpenId
Database - MySQL (Stable and OpenSource)
I want more to be added to this list so that I code less and reuse more. Please help me out.
Reusability is the key factor. How do I leverage already available classes, frameworks, etc in an efficient way? I want to know my options.
Try to find a framework that suit your needs. If you want reusability, make sure you learn/understand the concept of the MVC pattern (OOP). I personally work with Zend-Framework which has a very big community.
(However, a good practice is building your own framework. Look at other frameworks and learn about the pro's and cons.)
Every project starts with an UML design: http://en.wikipedia.org/wiki/Unified_Modeling_Language
Don't try to invent the wheel again, for example: learn/play with the 960 css grid http://960.gs, jQuery and different database-types.
Documentate everything!
Test everything http://simpletest.org
use subversion for easy access of previous versions of your project http://subversion.net
Good luck!!

Easiest way to implement an online order tracking database

I've been asked by a client to make an online tracking system for work we do for them (we will be typesetting a high volume of books for this client). Basically, it would be a database showing the books we are currently working on, with information on what stage of the project we are at, and estimated completion dates. The only people with access to this system would be us and employees of the client company.
I've worked in MySQL and PHP before; should I just go with what I know? This answer to a similar question suggests using Google Apps. I don't have any experience with Python, but happy to learn...
You're the only one using this therefore I see no reason to use Google Apps. I'm usually weary of people suggesting Google Apps, Amazon's s3, Microsoft Azure, etc. Also, you're going to be using a radically different data store. Unless you want an excuse to learn to do Google Apps and Python, I'd say go with MySQL+PHP and be done with it! In short, there aren't really any technical reasons for you to go with Google Apps here.
Sticking with what you know is always a good solution when dealing with delivering products to customers. No customer likes to be your guinea pig while you learn a new technology, although that's often how it's done. If you are comfortable with MySQL and PHP then stick with it if it satisfies your requirements, if it seems not to then look for libraries, frameworks and components written in PHP that might help you reach that goal. If you still have difficulties (unlikely given the scope of the project given) then ask questions here :) & search the web for solutions and patterns.
If all that fails and you can clearly solve your problem with another technology, then look at moving but make sure your customer is aware of how that's going to affect you timeframes.
When you've implemented this project and have some spare time, if there's a new direction you'd like to explore then use this project as your base and set to work without the stress of a deadline.
That's my 2p worth... good luck!
When developing a CRUD application such as this, you may be required to reinvent the wheel a little if starting from scratch. Many parts of your project are not unique to the project. E.g authentication, database access, form manipulation etc.
If getting things done is important to you it may be important to give your project a kick start and stop you wasting too much time.
Use a coding framework
Frameworks often have a lot of functionality ready for use straight out of the box.
Options may include Django, Ruby on Rails, Joomla, CakePHP, CodeIgniter.
Hack a tried and tested application
Open source projects are often quite easy to mould to your needs. Drupal and Joomla are CMS products which can be used in a wide variety of ways. If your book-tracking drupal module is any good, maybe you could go on to offer it as an open source plugin?
Use a currently available app in a new way
Your app seems to be tracking the status of items added to a database. How about using software designed for tracking other types of items. E.g. bug tracking software, project management to-do list software or customer relationship management software?
Well, as everyone has already said, if you already know PHP, that's got to be awfully tempting.
But it sounds simple enough that something like Django might save you a lot of time: its built-in admin interface could be used for the "update" side of the job, so all you'd need to template up is the "read" side, which is pretty easy.
I suggest you too look at Viravis.

Categories