Design challenge: super quick admin panel



  • I have to make a typical admin panel web app. Show data from DB in tables, sorting, pagination, edit, delete records, etc. Typical CRUD stuff with maybe a "do an action" button here and there.

    The requirements are

    • It has to be put together quickly.
    • It has to be easy to modify, add new pages, etc. Potentially by junior-ish developers.
    • Visual don't matter AT ALL. Zero effort required.

    Basically, just an "underwear for the database", that non-tech people can use to perform SQL queries and that we developers won't waste a lot of time maintaining.

    Presume I already have an API that will perform the actual actions of the admin panel. All I need is the UI.

    I obviously know how to make this. I am just wondering which stack to chose.

    I am very current on react and we have react people in house. I can do a SPA and target the backend API directly. But that might be too slow and fiddly, getting its stupid state management going with redux and such. Or maybe there is a quicker state manager? Or other SPA framework? They all are kind of trying to get animations going smoothly, few are optimizing for my use case.

    Other option is your typical server-rendered app. Every request goes to the server so no FE javascript at all. Basically, what people used to do with PHP 15 years ago. But is that faster than a SPA? I remember there being a lot of fiddly details the last time I did one of those. Also, now my backend will be like a middleware to a different api, is that strange?

    Or maybe some auto-generator? My experience with those is, you save a lot of time making CRUD tables, but you lose just as much figuring out how to hack in extra functionality when required. Also, juniors now have to learn how to jockey some huge framework instead of simple base technologies.

    Requirements seem simple, but there is a lot of nuance if you want to do it right.

    What would be your stack of choice?


  • Discourse touched me in a no-no place

    @cartman82 said in Design challenge: super quick admin panel:

    What would be your stack of choice?

    Last In, First Out. I like traditional stacks as data structures.

  • Java Dev

    This post is deleted!


  • Hey hey, come on now. Help thread rules. No monkey business.


  • Java Dev

    @cartman82 Apologies. I'll leave you to it.


  • Discourse touched me in a no-no place

    @cartman82 said in Design challenge: super quick admin panel:

    No monkey business.

    When I've needed this stuff, I've made a nasty REST webapp (or rather a sub-webapp that only enables when the user has admin permissions; I made sure to test that the permissions really were checked) and then hacked a front end on top based around just passing stuff pretty much raw. It was supremely unpolished — and long enough ago that straight jQuery for the client-side was acceptable — but enough for the app I was dealing with. The back end was CXF/Tomcat, but that was because the rest of the app was already using all that stuff anyway.



  • @dkf said in Design challenge: super quick admin panel:

    It was supremely unpolished — and long enough ago that straight jQuery for the client-side was acceptable — but enough for the app I was dealing with.

    See, I think standard app + ajax would be a bad tradeoff these days. That's like the worst of both worlds. You have your server rendering, then AJAX, then updates in responses and it's all super fiddly and complicated. I am glad that era of computing has passed now.

    My gut feeling is that either 100% server rendered or 100% SPA would be faster and with less complications.


  • 🚽 Regular

    @cartman82 said in Design challenge: super quick admin panel:

    • It has to be put together quickly.
    • It has to be easy to modify, add new pages, etc. Potentially by junior-ish developers.
    • Visual don't matter AT ALL. Zero effort required.

    What would be your stack of choice?

    I'd say ASP.net for quick, dirty and simple. Using the default webforms elements, just slap it all together. I did a quick thing for internal use like this, no MVC or anything but I did stick some jQuery and a Yahoo graphical library in to tart it up a bit.



  • @Cursorkeys I think I would go with that. OTOH, I thinkthat if @cartman82 use his favorite stack (react + redux?) it would be a great project to get any of those potentially junior-ish developers up to speed.



  • @Cursorkeys said in Design challenge: super quick admin panel:

    I'd say ASP.net for quick and dirty. Using the default webforms elements, just slap it all together. I did a quick thing for internal use like this, no MVC or anything but I did stick some jQuery and a Yahoo graphical library in to tart it up a bit.

    Hmm... If C#/Windows was an option, WebForms would be a solid choice.

    I started doing NET just as WebForms were being supplanted by MVC. The few things I did with them were marred by us having to basically hack around WebForms in order to make it look as the designers have envisioned. But for this particular project, they'd be great.

    I wonder if there is something like WebForms, only in modern era. I DID use a framework called Prado or Prada at one point, which was basically a clone of WebForms for PHP. But less said about that sorry mess, the better.



  • @sockpuppet7 said in Design challenge: super quick admin panel:

    @Cursorkeys I think I would go with that. But OTOH, I suggest that if @cartman82 use their favorite stack (react + redux?) it would be a great project to get any of those potentially junior-ish developers up to speed.

    No dude, I need a break from all the complex mathy stuff I am doing day to day. I want to spend a week just hacking simple CRUD forms with headphones on.

    Also, IMO junior should see a few done apps before setting up their own from scratch. Even a simple CRUD app will become hell to maintain if set up incorrectly.



  • ?



  • @cartman82 How does meteor compare with react these days on putting stuff together quickly?



  • @ApoY2k said in Design challenge: super quick admin panel:

    ?
    Directus

    That's headless CMS. It manages content and you build the interface. I need the reverse of that.

    Also, the only thing you can see without paying or registering is some video with animated purple rabbits.

    0_1537275471606_2e15a386-34b8-44d5-9f7b-43a003d51abf-image.png

    Awful marketing if they are aiming at developers.



  • @sockpuppet7 said in Design challenge: super quick admin panel:

    @cartman82 How does meteor compare with react these days on putting stuff together quickly?

    Meteor is kind of packaged with its own data store, while I want to use an external REST api. Also, it optimizes "reactive" applications, eg. you edit something in its embedded mongodb and all clients get updated. Interesting, but wrong tradeoff for what I need.



  • This post is deleted!


  • @dkf The thread's in Help, don't be a dick.


    Ruby on Rails does this by default, but you still have to code in your database structure to its ORM. (AFAIK it won't scan your database and find the structure automatically.) I believe MVC + EF will do this if configured right, but I've never played with that feature of it, and adding new pages would require adding new database tables (not sure if that's what you meant... or if you mean add just normal pages, like a Help document.)

    @cartman82 said in Design challenge: super quick admin panel:

    I want to spend a week just hacking simple CRUD forms with headphones on.

    You ought to be able to find a framework that'll just DO it. For your use here, you shouldn't have to write code at all except possibly to teach an ORM about your database structure.

    Since you asked what I'd do: I'd probably do WebForms with Razor for something like this. It's simple, it works, the tooling's good, there's a decent ORM (Entity Framework) you can borrow from, it has protections against SQL insertion and most common attacks, and I already know it. Also you can write pages in it that aren't 1:1 tied with database tables if you want to.


  • Discourse touched me in a no-no place

    @cartman82 said in Design challenge: super quick admin panel:

    You have your server rendering

    I slapped a few attributes on the classes and let the system JSON serializer do the rest? The client side code was an SPA that cooked that into something readable. (I'm a terrible JS programmer, but I'm aware enough to know I'm bad at it.)


  • Discourse touched me in a no-no place

    @cartman82 said in Design challenge: super quick admin panel:

    Also, the only thing you can see without paying or registering is some video with animated purple rabbits.

    I couldn't find the video despite not registering. I wanted animated purple rabbits…



  • @cartman82 Once you get past the bunnies, it does seem to be exactly what you're looking for.

    @cartman82 said in Design challenge: super quick admin panel:

    Awful marketing if they are aiming at developers.

    They're aiming for a certain type of developer-- "our stuff is on GitHub! Pull requests wanted! Documentation in Markdown!"-- a type of developer I certainly am not.

    How about crowing about "our libraries were actually thoughtfully designed, not glommed together! We have fewer than 25 dependencies! We have a QA department! We're not going to pointlessly rewrite our API every 18 months!" Those are the kind of assurances I'd like to see before tying my business to your crap.



  • @blakeyrat said in Design challenge: super quick admin panel:

    Ruby on Rails does this by default, but you still have to code in your database structure to its ORM. (AFAIK it won't scan your database and find the structure automatically.) I believe MVC + EF will do this if configured right, but I've never played with that feature of it, and adding new pages would require adding new database tables (not sure if that's what you meant... or if you mean add just normal pages, like a Help document.)

    I mentioned above, I won't have a database. I'll be calling a rest interface. Makes things a bit more difficult.

    Also, rails is pure MVC, which means it mostly solves the backend/data problem. You have to put together the frontend manually, unlike the precursors like WebForms.

    You ought to be able to find a framework that'll just DO it. For your use here, you shouldn't have to write code at all except possibly to teach an ORM about your database structure.

    Trying :)



  • @dkf said in Design challenge: super quick admin panel:

    Also, the only thing you can see without paying or registering is some video with animated purple rabbits.

    I couldn't find the video despite not registering. I wanted animated purple rabbits…

    Just click "Get Started". Your options are, register or watch pointless video.



  • @thegoryone said in Design challenge: super quick admin panel:

    I wouldn't go down the PHP line and that's coming from a PHP guy - I mean you could do it with something like Zend 3 or Laravel and just pull your data via the API but I can't imagine Laravel at least would be any faster (probably slower, Zend 3 might match it for speed) and you just end up with a bottom heavy framework where you're only using about 5% of the full functionality of the system (Also: Fuck Eloquent). Sledgehammer to crack a wallnut kind deal since the API is already done.

    PHP frameworks also mostly solve the backend problem, which I don't have. I need something that focuses on drawing data tables and CRUD editors. But most frontend frameworks these days are focused on flashiness and reactiveness, things I don't need.

    Again and again we come back to "I wish someone made a new WebForms".

    What about Vue instead of React? I'm no JS guy but always found it handy enough to hack around with compared to Angular

    My personally least favorite one of the big three. It's a bit easier to just throw in than react, though. Might make sense for a SPA solution.


  • Discourse touched me in a no-no place

    @cartman82 said in Design challenge: super quick admin panel:

    Just click "Get Started". Your options are, register or watch pointless video.

    Thanks. I wanted to watch a pointless video much more than staring at even more horrible code that binds structures in C and classes in Java over a nasty protocol.



  • @blakeyrat said in Design challenge: super quick admin panel:

    @cartman82 Once you get past the bunnies, it does seem to be exactly what you're looking for.

    Thanks for pointing it out, I almost missed on looking at this after that dismissive comment from @cartman82. That thing looks interesting, their site is far better than the average OSS site, I can even understand what this product does from reading it! (and the rabbits are a plus)

    Also, you only pay if you want it hosted, like Discourse. They link you to github: https://github.com/directus/directus/tree/build



  • @cartman82 said in Design challenge: super quick admin panel:

    Also, rails is pure MVC, which means it mostly solves the backend/data problem.

    Yeah but it auto-generates a default front-end which is a basic database table/record editor, exactly like what you're looking for. (I mean, most Ruby on Rails products don't end up USING that view, but it's in there.)

    Anyway I didn't realize your API was different from your database, so then there's not a lot you can do without writing glue code.

    If your API exports a WSDL, you can import that into the .Net tooling which will build a class library from it, which you can then hook up to a WebForms application very easily. But considering how your company works, I'm 99.9% sure you don't have a WSDL.



  • I wouldn't bother with any front-end javascript frameworks at all. 3 years from now they'll be deprecated anyway as the next best thing has come along.

    Just throw something together using ASP.NET MVC (or any other tech stack of choice) and use Bootstrap to give it a somewhat consistent look and feel.



  • I'd use Winforms :-) but that's because it's what I'm used to. I'd make each window separately and then when the program runs load each one into a tab. Then junior devs can add windows without touching other things. Also, you could limit the tabs someone can see based on their security.


  • Notification Spam Recipient

    @cartman82 said in Design challenge: super quick admin panel:

    I have to make a typical admin panel web app. Show data from DB in tables, sorting, pagination, edit, delete records, etc. Typical CRUD stuff with maybe a "do an action" button here and there.

    The requirements are

    • It has to be put together quickly.
    • It has to be easy to modify, add new pages, etc. Potentially by junior-ish developers.
    • Visual don't matter AT ALL. Zero effort required.

    If you don't care about performance, the Asp.Net MVC default scaffolded thing with Entity Framework works just fine for a click-and-go simple solution.

    So long as you already have a database and destination IIS server to publish to, it shouldn't take much longer than 15 minutes from project creation to "working" site.


  • Considered Harmful

    Depending on the database, I would use Rust with conrod and diesel if diesel supported it. Is it Postgres, or something else?


Log in to reply