Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: If you needed a crud app built, how would you build it?
27 points by drewrv on March 6, 2017 | hide | past | favorite | 37 comments
Let's say you needed a simple inventory or scheduling app built. Would you hack something with Google sheets? Build from scratch with rails or django? Use a saas tool or WordPress plugin? Something else entirely?

I guess I'm the "something else entirely" vote. If it's mostly for internal use, I would shy away on build on a platform stuff, and find a "form builder" type app with web server capability or a web service. Google sheets feels a little light for this purpose, but likely could be done at some maintenance cost as your number of forms grows.

The first hit in my search was zoho creator or Airtable (but I know nothing about either) - I was looking along the lines of something like Filemaker for the web. And just to keep growth in mind, be sure to have a way to export the database and form/field content. That way you can keep the option for a more custom build scenario later.

Edit: added a google sheets comment.

Seconding Google Sheets.

We have a large and mature codebase, but we're always iterating with new features. These often require data entry by experts in the company (in our case, stylists, marketers, copy-editors, etc), and the first-pass at the CRUD behaviour is usually just a spreadsheet. Everyone understands them, and most editing/coordination is done in a sheet while a developer builds the models and front-end in the main site (Django), then a simple import script using the Python Sheets API sticks all the data in the database in one go. The second iteration is usually a simple management interface of some sort or user-preferences.

If you already have Django, why not just use Django admin? Give the users a crud app in 5 minutes and skip the import step.

I'm guessing Thread?

+1 We have built a service [0] that just does this type of use case. You can basically built your forms to receive submissions via drag and drop functionality and CRUD is handled by our dashboard at a submission level. You can also integrate with over 500+ external services without coding via zapier. On each submission, you can set to write to Google Sheet or to your CRM.

[0] http://formbit.co

Django running on Heroku. Its easy and fast to start with if you end up needing to expand, it has the options. Also if you need a API later on, you can just slap Django Rest Framework on top of you app and reuse most of the stuff.

I second this. Django with its Rest framework is an awesome combo.

Django because I'm already good / fast at it. If you're already at that level with Rails, use Rails.

One challenge of the Django approach today is deciding between a modern or "classic" front end. I think the answer is not black and white and really depends on the amount of interactivity in the app.

I would not use Google Sheets as the backend for anything more than a side project based on performance issues mentioned by others who have done so. Still, I think it's a really cool idea. I've considered trying to write a (partial) Google Sheets backend for the Django ORM.

If the app is very simple and you don't want to maintain your own servers, i would go with Google sheets, forms and app script.

I actually do CRUD apps and utilities made with Sheets and Apps Script as a (very small) evening business. Fun to hack away on little projects that provide real useful value for businesses.

And you can actually get pretty complex systems going with a lot of planning and lateral thinking. Really makes me respect real software architects and designers.

I'm a writer by trade so it's a fun change of pace for me.

Laravel - it has built in authentication, and a while ago I cobbled together an artisan command that basically builds the model, controller, migration, and all necessary views with one command. It still feels like too much repetition is involved in what by now ought to be as simple as pressing a button.

I throw in my vote for Laravel. Also, have a look at any of the following starting projects some of which include form generators. https://github.com/chiraggude/awesome-laravel#starter-projec...

Laravel is basically php rails. So Laravel or Rails works.

Ruby on Rails

I would throw something together with a RAD framework like CakePHP.

Basically you design an ERD to Cake's specifications, install Cake, install the very excellent CRUD plugin[0] and CRUD View [1] if you want scaffolded views and it's done!

Depending on the amount of functionality you needed on top of basic CRUD there is no reason why you couldn't have something up and running in a couple of hours

[0] https://github.com/FriendsOfCake/crud

[1] https://github.com/FriendsOfCake/crud-view

Build from scratch using Laravel.

Laravel has a super great ecosystem: Great Community, Laracasts.com, http://laracon.us/ (us conference), https://laracon.net/ (online conference, this Wednesday btw), https://Forge.Laravel.com (Server creation AWS/DO/etc, connect repo, deployment), https://envoyer.io (zero down time deployment)

Depends on your language of choice. I am personally leaning towards PHP/Laravel Framework these days even though I am a big fan of Python/Django/Flask as well. Great thing about Laravel is that it bundles vue.js out of the box along with abstraction for webpack etc. So it is has a good mix of frontend and backend infrastructure to get things done very quickly.

I also work a lot with WordPress but if I had a choice, I wouldn't build a CRUD app from scratch using WP. But with its awesome ecosystem of themes/plugins, you could technically do it with WP as well.

If you need it to be really simple django and customising the admin. Have done this for a simple ticketing system and had something surprisingly stable in about 8 hours work.

I'd size it out based on initial requirements and take it from there. Some things to consider 1) how much "stuff" do I need to keep track of 2) What's the fastest way for me to do it 3) what's the implications of doing it fast?

Most times by going through this exercise you realize you actually don't need to build anything and Google Sheets suffices.

angular/groovy/mysql/springboot/hibernate - make the hibernate object model and the code writes itself. Run an embedded tomcat7 server in the WAR for easy deployment.

The bad part about this stack is that it takes some maven config to set up, but once it's running creating new crud apps becomes trivial.

Hasn't someone packaged this up into a nearly turnkey kind of application?

I think you are talking about Jhipster.


Grails used to be awesome for this kind of stuff.

You could define model-classes and it was able to auto generate working, good-enough database tables (using hibernate) views and controllers. All pretty mich easily customizable.

Think of rails, but on the jvm, with performance.

Sadly, it's a pretty dead project.

One reason it's dead is because Grails has issues with its governance. Look up the DNS details for its website (grails.org) and you'll see the same single individual listed, with a blank organization field, as the contact person for registrant, admin, and tech. A project run by a single dictator instead of many leaders cooperating together within some organizational structure, not even a loose one, isn't one users are going to trust.

Apache Groovy had a similar problem which also helped caused its decline. It joined the ASF 2 years ago, but it was too late.

Nodejs, vuejs, couchdb, rxdb.

I second this

I would use Vaadin -- lots of components and you can develop both front-end and back-end in Java. https://vaadin.com/

Meteor is my goto for most simple applications. It has packages for auth, account management, and a simple admin UI as well. Will have the CRUD up and running in an hour.

Money involved ?

Yes: Spring Boot

No: The fastest dirtiest way I could think of. Rails scaffolding

Money involved? assembly lol

This explains so much of what I have seen in the Spring/Java community.

What do you mean ?

Plain old Django.

It depends on what you already know of course but Laravel or Meteor.

rails new bam

XAMP stack, using PDO.

Laravel and MySQL

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact