hackforla / heart

Heart is a project working directly with the LA City Attorneyโ€™s Homeless Engagement and Response Team. We are building a database and case management system to streamline their workflow and enable them to scale their program. Find us on the Hack for LA Slack #heart.
https://www.lacityattorney.org/community-justice
MIT License
31 stars 40 forks source link

Explore framework options for main profile app #3

Closed tienyuan closed 5 years ago

tienyuan commented 5 years ago

Goal

To vet a possible framework for the 'main profile app' to store participant profile info at the office. Note that we will need authentication, this is a CRUD app and we're leaning towards using a sql db.

Possible frameworks are:

Desired Result

Pick a possible framework and try it out. Then write down your thoughts/opinions/notes for the potential framework.

Code/prototypes produced should be used to form your opinions. Demos are nice to have, not required

Examples of what to include:

Background

Assumptions We'll be able to use what we want as the database. We'll want to write tests.

Hypothesis We should go with Python, NodeJS or Ruby as the main backend language because we think many developers coming to Hack for LA will know one of them.


For the sake of our future selves/volunteers, we're trying to document the intent/thoughts/assumptions/decisions that lead up to the code.

So this is an extra wordy issue description ๐Ÿ˜ƒ

mitchellwandrews commented 5 years ago

I'll put together something this weekend using node/express and JWT for authentication. Definitely my prefered framework as I have had a lot of experience with it, but I also know python/flask/django and I'm sure I could learn Keystone. If I have time I'll also write some simple unit tests to demo.

tienyuan commented 5 years ago

Very cool @mitchellwandrews ! Yes, it'd definitely be valuable to get your thoughts on how well express might fit this project.

tienyuan commented 5 years ago

I'm trying out https://sailsjs.com/

jonmelvin commented 5 years ago

Is Sails what you would recommend I look at?
(Work got busy, so it will be slower going than last week - sorry.)

Jon Melvin

PS - did you see the database scripts? They are from my CSharp project. For the nodejs: I put the table creation right in the nodejs app I created so that there are not separate modules to keep in synch - a nice approach for small apps.

tienyuan commented 5 years ago

@jonmelvin Choose whatever catches your eye.

If you chose a different framework, we'd have more to compare next Monday. If you overlap, we'd have another perspective. All good :-)

If you favor nodejs, some newer frameworks I haven't mentioned already are:

Found them in https://2018.stateofjs.com/back-end-frameworks/overview/

Or one of the python or ruby ones I mentioned in the original description.

Freetime changes alot, at least for me! So let's work to pick something developer-friendly, so we can all make the most of our time!

mitchellwandrews commented 5 years ago

@tienyuan I have heard good things about koajs but I haven't used it yet. Might try that instead of express since I already have a good feel for express.

tienyuan commented 5 years ago

@mitchellwandrews nice! Yes, if you already know the pros and cons of express, totally try Koa. It would be nice to see how it compares. Maybe it'll reaffirm the argument for express ยฏ\(ใƒ„)/ยฏ

tienyuan commented 5 years ago

Sails.JS - Started an app, put it into a docker container, hooked up postgres, added new model/controller, stopped when adding a view

https://news.ycombinator.com/item?id=16749148

mitchellwandrews commented 5 years ago

KoaJS - Built a simple crud app for notes, hooked up to mysql on AWS RDS with Knex.js query builder. Didn't get to implement auth or any tests, but since it's a JS framework JWT and normal node testing frameworks should work well with it.

tienyuan commented 5 years ago

We've decided on Express serving backend and frontend pages. Pages will use react components and the database is Postgres.