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.