Technology stack for building a web application [closed] - mysql

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 9 years ago.
Improve this question
I'm an old C++ / algorithm guy who is making a first attempt at building a web application. I could use the community's help in making correct architectural / tech stack decisions. Here's what we're trying to do:
There is a simple relational model for the data. Most of the application is simple CRUD, with a high usability and variety of UI controls needed to match a fairly complex workflow a company follows. Often data from multiple tables need to be displayed / edited in one page - think of an editable dashboard that takes full advantage of large monitors (grids, drag-drop, tree displays of data, etc.). There is a bit of server-side text processing to be done as well, with Python being the company's processing language of choice.
The company wants to use open source where possible but wants the best UI controls/widgets and will pay for a commercial UI package. They want to make sure there is a good-sized community of developers who use all the technologies involved so they never have trouble finding someone else to maintain/enhance the app once it has been built. There will be under a dozen concurrent users.
I've read various questions/answers here, done some research on my own, and talked with a few colleagues who build web apps in an effort to decide on a proper technology stack for this application. Here is what I've come up with:
Sencha ExtJS for the UI
JSON for data transmission
Django as the web application framework on the server
Apache as the web server
MySQL as the RDBMS
Linux as the O/S
Github for the development repository
Webfaction for the app hosting (full shell access, long-run process support, Linux/Apache/MySQL/Django support, etc.)
Authentication via username/password in database
I'd love to get this tech stack validated by a few experienced people. If you've built high-usability CRUD-style web apps, please let me know what you think of my intended choices, and also please let me know if I am leaving anything important out.
Thanks!
Ron

It will come down to what you are comfortable with as you go along -- don't lock in your combination too early. I believe you've listed a very usable stack. I don't have any experience with Sencha ExtJS, but the rest is solid stuff. Django is a beautiful thing, and even if you don't have Python experience it is really easy (and fun!) to learn.
But as you go you will find some things don't feel right just because of your background, or because of the way it fits with other pieces of your stack, and may find something more suited to your situation.
I've actually come to the conclusion that these days, the pieces available for a web stack are so well evolved and so well explored that you (almost) can't go wrong -- what is far more important is the application design. People tend to get wrapped up in technology decisions and lose focus on the app itself.

Related

What is the best method to make an interactive website with MySQL using existing code? [closed]

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 6 years ago.
Improve this question
Straight to the point: What is the best method to make an interactive website with a database connection? My current path is to code it all by myself (cue the song). How would you tackle this situation with today’s methods and possibilities?
I already have read into HTML5 and CSS3. I’ve “finished” the homepage with html and wrote the main-css (here is the fiddle).The sections on the frontpage should contain elements from the database in the future. The bacon ipsum is just an inadequate place-holder. :P
<section>
<h2>Newest entries</h2>
<p>Bacon ipsum ....</p>
Currently I’m looking at JS, JQuery and PHP but it’s all relatively new to me. During my studies we looked at JavaEE but I’m unsure if it’s the right approach for this. The attached diagram shows what classes my website should support. The website should enable collaborative writing of stories between multiple people.
What I would like to know is: Which is the best way to create a functional site? I know one option is to code it all by myself but I have a very strong feeling that all the functionality which I need is already available. Could someone give me a nudge in the right direction?
My hosting-provider supports MySQL 5, subdomains, Website Redirect, Cronjobs, Domain Mapping in root, Website Directory Indexing, PHP 4, PHP 5 mit SOAP Support, Perl, Python, RealAudio, Ruby 1.8.7, ImageMagick, Ghostscript, Zend Optimizer, Gd
The provider also offers following 1-click installations:
WordPress, Joomla, Concrete 5, bbPress, BuddyPress, Drupal, phpBB2 & 3, Elgg Social Network System, MODX, Vanilla Forums, Pligg Social Networking, Moodle, CMS Made Simple, Piwik, Simple Machines Forum (SMF), Zenphoto, StatusNet, LimeSurvey. MantisBT, PHProjekt, Pixelpost, phpMyFAQ, Textpattern,Open Web Analytics, Geeklog Blog, Nucleus Blog, Mambo CMS, Locked Area Lite Password Manager, Eblah Online Discussion Forum, TYPO3 Content Management System, Crafty Syntax Live Help, phpCoin Web Hosting Billing System, Revive Adserver, dotProject - Project Management, osTicket - Ticket System, Postcards,Form to Email with CAPTCHA, Custom 404 and 500 Error Pages, Search Engine, Free For All Links page, Banner Advertising System, Online Auction - Just Like eBay, Domain Name Checker, Coppermine Online Photo Gallery, Web Calendar, Web Survey, Gallery2, RoundCube Webmail, MediaWiki, SugarCRM
Looking forward to your recommendations.
I have used Drupal and build some sites with it. It's really powerful and there are a lot of free modules you can use. I'm not sure if there is a module to write collaborative content, but maybe you can tune the workflow module. Anyway if you need it you can code a new module by yourself, but only for the specific functionality you need.
Drupal is very modular and simple, obviously it has a learning curve but I think it is not very hard and it is well documented.

I've made something that might be useful to the community. Now what? [closed]

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 7 years ago.
Improve this question
If the specifics are important, I made a cruisecontrol.net publisher plugin that notifies a series of phone numbers via voice, announcing the current state of the build. It uses Twilio to do so.
I'd like to avoid getting hung up on the specifics of what it is I've made, as I have this question a lot, with a number of little hobby one-offs. What's the state of the art as far as making my hobby output available to the world at large?
There seem to be a lot of options for open-source project hosting, community features, and what role to take in all of this. It's a little bewildering. What I'm looking for is to put this out into the wild for free and basically take a hands-off approach from there. Is that realistic? Which project hosting service can I use for free to allow developers to at least download the code, report issues and collaborate with each other to improve the product?
What snags have you run into that could make me regret this decision? I'm interested in war stories, advice and guidance on making this little product available to the community where it can be used.
GoogleCode is a decent self repository for open source code. Very easy to use and contains the ability to create a wiki for the project. It also has a very easy to use and understand bug reporting/forum style issue management system.
One easy way to quickly get code on a publicly accessible host is github.com. Hosting is free if everything you host is available to the public. People would be able to grab latest, and notify you when they have updates they think are worth merging.
You would include documentation as a README.
CodeProject is cool, sites like that would allow more community discussion then what I've seen on Github.
If it's just a small example, or a small piece of code, you might think about just posting an ariticle on a site like "Code Project", or a blog.
There's a lot of overhead with releasing an open-source project, and if you want to be hands-off, you might have an easier time just writing an article, and providing a .zip to download the code example.
Take a look at SourceForge.net, which is a website where programmers can create their open-source projects. It allows you to add new users which may have different rights on your project (from just being a contributer to being a full administrator) and it features many tools which you might want to use for your project, such as a bug tracker and SVN.
CodePlex is another good place for posting projects. There's lot's of C#/.NET there. In addition to all the basic project hosting stuff one of the nice things about it is that they support a whole slew of source control clients.

Concerns about releasing a project as Open Source [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
Community Wiki
I've been working on a fairly large project www.wikipediamaze.com and I initially intended for it to be open source, but as I get closer and closer to "done" I'm getting more and more nervous about releasing the code.
Initially I had hoped to use the project as sort of a "resume", if you will, as well as a learning tool for myself and others that I could blog about. And of course making a buck or two off of ads wouldn't be a bad thing either.
However, after dedicating my life to it for the last few months I'm really concerned about releasing the product as open source before I've reached "Critical Mass". Do I really want to risk putting it out there for someone to rip off the code and put up a competing product that does a better job of SEO and pretty much runs me out of the market? Is there anything I can do to protect myself from this aside from not releasing the code?
There are already competing products out there, but I've put a slightly different spin on it that I think will help make it successful. I'm just afraid I will shoot myself in the foot by releasing it to early.
Any thoughts or suggestions?
BTW the project was built using ASP.Net MVC, C#, Fluent NHibernate and Linq 2 NHibernate, Sql Server 2008, RPX Now (open id / OAuth), and twitter amongst other things.
Michael,
In my opinion these are the reasons that you might open source a project:
The project is a light version. You offer the pro version for a fee on your site.
The project can be used as a library in someone else project. You want to show good will towards other developers.
The project uses cutting edge technology and you want other developers to learn from what you are doing.
You want to do top of mind marketing. By making something open source and distributing through codeplex and robosoft; it might bring people to your site to click on ads.
You are single and have a lot of time on your hands. You want to support your open source product and add features because you are very bored.
The project is based on several open source projects and the licensing prevents you from releasing it as a commercial product.
With those tenants above, I think that unless 3, 4, or 5 apply I would release it as a commercial.
If you do consider releasing it as Open Source, you probably will want to go with a GNU public license. That will drive away most corporations from using the code and anyone who uses your code will also have to use the GPL, so you can always integrate what they've done into your product.
That said, you should still consider registering for a copyright. That way anyone (like a potential employer) who asks "Is this really your code" will be able to receive proof that yes, it really is your code.
I would definitely suggest going open source. People are going to copy your features whether you release the code or not.
If you do open source it, I would suggest using the AGPL (Affero GPL). This will prevent people from taking the code, making modifications and not releasing the code by not distributing it and just running it on there own servers.
By the way, cool site. It's sort of like WikiFighting though.

Becoming a Web Designer: CMS, or by hand [closed]

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 7 years ago.
Improve this question
I'm biting the bullet and becoming a Web Designer, there are just too many good opportunities out there. I'm a professional SW engineer, so I want approach this correctly. So far I'm fairly good at HTML/CSS/Javascript all completely by hand. I'm also good with jQuery and Django with mySql. I've made some cool sites but it takes TOO LONG if I want to do this for many sites.
Here is my question: Do I learn a CMS really well and use it (and be stuck with it) or do I spend that time developing some reusable HTML/CSS templates and do everything by hand?
So far my CMS experience is that there is overhead setting it up, and it you want a lot of customization you're doing CSS anyway.
If I go the CMS route -- which one?
What is the "best method" for Web Dev? I intend on creating a very diverse array of sites as well...
Thanks!!!
The future of web publishing is clearly in Content Management Systems for everything larger than a small personal site. People are not buying sites anymore for which they have to pay a professional every time a paragraph needs changing.
Make sure you know your HTML, CSS, and Javascript, but get familiar with one or more CMS's on the market, preferably one of the big ones that get you a big community, and the advantage of a widely known standard that it is easy to find people for. Learn how to customize it, how to build templates for it quickly and effectively.
One of the biggest flagships in enterprise-level CMS'es is certainly Drupal. From personal experience, I also know Joomla, but I'm not sure whether I'd recommend it to get started with - it tends to be a bit dirty on the code side sometimes. WordPress is successfully used as a CMS by many.
Look around on SO what systems people are happy with; if you want to get to know the concept of a certain CMS check out openSourceCMS who provide live demos of many CMS'es. There are also very robust commercial products out there that are better maintained than the open source projects.
There isn't a single correct answer for this IMHO. Basically, it comes down to:
Use the best tool for the job.
The best thing you can do for yourself is learn about what tools are available, and what they are capable of. Try to match each one to a scenario you think might be particularly suitable for a given solution.
You will find that if you invest a lot of time in learning something like Python / Django you will be able to create just about any site you can imagine, but then you might find that if all your client requires is a simple, mostly static company info site that something like Drupal might be more appropriate.
The baseline technologies like (X)HTML, JavaScript, CSS and SQL are used across all of them, so knowing these tools well in a generic context is also extremely valuable.
A truly well-equipped toolbelt is invaluable.
If you need a little number of pages, without any dynamics, render your site with your favorite language and numerous templates to html files and don't deal with anything but www-server.
Once you need a rather big site - use a tool which you already know well. (I using django and happy with it).
When a site is really huge - make your own CMS. But at first have a practice with tool like django. Until you know how it works - try not to deal with big projects at all.
I can advice to use statically typed language for anything, but i'm sure that you know benefits and caveats.
Python and Django is suitable almost for anything.
I am a Web Designer and recently I began using Wordpress. I've found it great so far, once I have my site ready in xHTML and CSS it only takes me a couple of hours to make the content editable.
I have also created about 3-5 themes my self, I've found creating Child Themes and using Themes like Twenty Ten as a parent, so I can use their functions etc.
I would highly suggest that you look into wordpress, especially if you want to speed up the process for creating websites.
Those two choices aren't mutually exclusive.
You should build reusable code regardless of which option you choose. With a CMS, there will already have some design decisions made for you of course, but I find myself building APIs and interfaces using Drupal all the time. In fact it's a measurement of quality.
There are also some frameworks that you might like too that will let you custom build and increase productivity. See The Zend PHP framework, Ruby on Rails, Kohana, Nanoc and the 960 CSS/HTML grid. You could say they are the best of both worlds!
If you are going to implement web sites for the general public, I'll go with Joomla. I managed to implement 9 websites in one year with this CMS. In my opinion, it is important to know PHP, HTML, CSS and Javascript pretty well before using Joomla (which you seem to know), or any other open source CMS for that matter. This way, you will be able to customize all aspects of the website (both frontend and backend) with ease. For example, when I don't find a plugin which does what I need, I just create the plugin myself.
However, if your aim is more on Web Applications rather than web sites, I'd go with ASP.NET and ExtJS, which seems to be today's trend for web applications since you will be combining the power of ASP.NET with the power of AJAX (ExtJs).
IMO, Python is more targeted for very large and complex projects (look at Google or Amazon).

What is your experience using the TIBCO General Interface? [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 9 years ago.
Improve this question
It looks interesting and I've played around with it some --- but the development IDE in a web browser seems to be nightmare eventually.
Does anyone have experience using it and what are your thoughts?
We evaluated GI a few months ago for a project but didn't end up selecting it.
The IDE-in-a-browser (which is itself build with GI) actually works surprisingly well, though there are some features you normally expect from an editor that it lacks, most notably (and irritatingly) an Undo command. It's also impossible to do things like subdocument includes (practically a necessity for team development) from the IDE, though you can do them manually in the underlying XML and the IDE will respect them.
In the end the main reason we didn't go with it was that it was difficult to make the resulting web application look as good as the designers really wanted. It was relatively easy to build functionality, but the components were very restrictive in look and feel. The way GI renders its own document model to HTML involves a lot of style attributes which makes skinning in CSS all but impossible. It seems to prefer making web applications that look like applications, instead of web applications that look like websites.
So it would probably be great for building intranet type applications where look and feel isn't a huge issue, but I probably wouldn't use it to make a public facing site.
By the way for those that don't know, TIBCO GI is a completely separate product from the rest of TIBCO's SOA business integration stuff - General Interface was a separate company that was acquired by TIBCO a couple of years ago.
From a coworker who used to work at TIBCO:
TIBCO is a complicated, hard to use system because it's used for complicated, hard to solve problems.
Kieron does a good job of summarizing GI. It's really for enterprise web applications, not consumer-y widgets. The overhead of loading the entire GI framework and waiting a second or two for it to load doesn;t seem like much if you're firing up a call center or an employee provisioning application you're going to use for the next few hours. But, it seems like forever if you're waiting for a widget to load into an existing web page. And, even though, GI supports some nice functional and performance QA tools, they really are overkill unless you're working on something important and complex. So, if all you want is to toss a sexy looking datepicker on screen, use something else for sure.
Yup, couldn't agree more. I have developed a few applications with TIBCO GI and integrated it with TIBCO CIM. I work for TIBCO and GI is something I have been working with quite heavily doing some complicated stuff. Whilst doing it, I came across the odd sides of GI, things you sometimes can't explain but are just the way they are, working with JavaScript and dealing with multithreading issues can be a nightmare etc. It's good to create something quick without being too fussy about the sexiness of the application hence good for internal apps but not for consumers unless you want to get lost in a jungle of crazy CSS styling. The XML Mapping utility is a great feature saving you lots of time to implement SOA applications. The other good part is that deployment is really easy - GI apps use a combination of XML, XSLT, X-Path and JavaScript. In GI 3.8 there are also a couple of testing tools. Unfortunately, development inside GI's editor is slow and painful, so I recommend using an external editor like Notepad++.
you dont need to run tibco-GI from a web-browser, but you need to run the Programfile GI_Builder.exe which is an ActiveX application. just double-click on it and run-it.