gothinkster / realworld

"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more
https://realworld-docs.netlify.app/
MIT License
80.65k stars 7.34k forks source link

🗄🔧 Elixir + Phoenix #17

Closed BrainMaestro closed 7 years ago

BrainMaestro commented 7 years ago

Current Status

Todo:


I would like to work on this

EricSimons commented 7 years ago

Awesome! Wanna fork our starter kit and post the link in this issue so others can watch/fork?

BrainMaestro commented 7 years ago

Thanks! I'll do that soon.

agustif commented 7 years ago

@BrainMaestro I would like to help on elixir/phoenix counterpart.

It seems like a really good exercise to make to learn to load associations and stuff...

Lemme know if you want to team-up or somethin!

BrainMaestro commented 7 years ago

@agustif sure that sounds great! Just give me some time to set it up.

agustif commented 7 years ago

Sure np! if you think that's ok just mention me on what you could use some help on!

EricSimons commented 7 years ago

@BrainMaestro whenever you spin up the repo, feel free to swap out the default starter logo with this one I just made:

elixir-logo

EricSimons commented 7 years ago

Just set up the Gitter chatroom for this! Lets do our collaborator coordination in there 👍

cc/ @BrainMaestro @agustif

sotojuan commented 7 years ago

@BrainMaestro happy to join and contribute. Will check things out this week :-)

sotojuan commented 7 years ago

So I forked the starter kit here (https://github.com/sotojuan/realworld-starter-kit) as per Eric's instructions. Happy to work somewhere else though since it was your idea @BrainMaestro.

Before I do anything... what are we using? Raw Plug? Phoenix (1.2 or 1.3 beta?)? Feel free to answer here or in Gitter.

BrainMaestro commented 7 years ago

@sotojuan I already created a repo here https://github.com/BrainMaestro/elixir-phoenix-realworld. Sorry for not linking it earlier.

I think Phoenix the latest stable phoenix is a good idea. I'll add the starter files today. Also thanks for wanting to contribute. This project will pick up steam soon. Sorry for slowing everyone down.

BrainMaestro commented 7 years ago

I added a list of all the tasks to a github project here

sotojuan commented 7 years ago

Thanks @BrainMaestro! Will have a PR or something up soon :-)

fcevado commented 7 years ago

I don't know if it should be discussed here, at the @BrainMaestro repo, or at the gitter. But shouldn't it be using the phoenix 1.3 structure? I know it's not released yet, but it already has rc-1 and it's possible to create a project with the new structure. Since it's a project to serve as an example for devs, I think it should be built with the new structure. The first topic in this talk by Chris Mccord(the creator of Phoenix) is this organization change: https://www.youtube.com/watch?v=tMO28ar0lW8

agustif commented 7 years ago

+1 on 1.3 but doesnt matter starting on 1.2, we could document changes and update the repo and that would help making old docs/tutos not as much obsolete maybe

But id do it in 1.3 too, I was just waiting to see what @smpallen does on coherence

fcevado commented 7 years ago

But id do it in 1.3 too, I was just waiting to see what @smpallen does on coherence

I wouldn't recomend coherence at all, it's built with comeonin and probably uses bcrypt. It looks like it's made to work with devise. I'd rather built it from scratch(given the modular nature of Elixir/Phoenix, it's not a complex thing) using argon2 for hashing. Just for reference: https://password-hashing.net/

agustif commented 7 years ago

I am not advocating for coherence for this project, but I'm following along the updates of some libraries I want to use in a personal project and everyone seems to be scrambling to do the 1.3 updates, that was my point, just waiting to see what others do and then proceed.

Since we're doing an API only backend Im guessing we will use guardian and maybe guardian_db to store passwords in db.

I've recently used Gatling for deployment to ubuntu VPS and was happy to not have to interact with nginx!

fcevado commented 7 years ago

I am not advocating for coherence for this project, but I'm following along the updates of some libraries I want to use in a personal project and everyone seems to be scrambling to do the 1.3 updates, that was my point, just waiting to see what others do and then proceed.

I understood that, i just commented as a tip. :sweat_smile:

Since we're doing an API only backend Im guessing we will use guardian and maybe guardian_db to store passwords in db.

Actually for this project, I think it will be implemented html and api(based on the rails implementtation that has both). @EricSimons is that correct?

I've recently used Gatling for deployment to ubuntu VPS and was happy to not have to interact with nginx!

An Elixir/Phoenix project? I think cowboy is more than enough as a server :stuck_out_tongue: ...

EricSimons commented 7 years ago

Nope, this is strictly API requests only - the Rails codebase only sends JSON via endpoints too (no HTML, etc)

fcevado commented 7 years ago

I saw some views there, thought it had html... :sweat_smile:

agustif commented 7 years ago

Exactly, at the end of the day any of the backends will match any of the clients, and we're keeping it like this in realWorld, Im guessing server rendered pages are not taken into account.

EricSimons commented 7 years ago

Yeah server rendering was intentionally left out of the spec because of how much it varies based on framework/language/etc. So def make your tech decisions based around the backend being strictly an API server 👍

BrainMaestro commented 7 years ago

I think 1.3 is a good choice too. Will update it.

jamesbrewerdev commented 7 years ago

Hey, yall!

I think this conversation would be better had at BrainMaestro/elixir-phoenix-realworld. As a rule of thumb, implementation-specific talks are a good candidate for being in the implementation repo.

CC @EricSimons Thoughts? CC @fcevado Because you said you weren't sure. 😄

BrainMaestro commented 7 years ago

@EricSimons I have been busy over the last few months and have been unable to work on the project, if there's someone else interested in it, I am willing to transfer the repo over to them. Thanks.

huyz commented 7 years ago

@BrainMaestro Understandable. Thanks for getting things started.

I'm gonna wait until someone takes over in order to hopefully contribute

lbighetti commented 7 years ago

@BrainMaestro In this case, please transfer the repo to me, I'm happy to take over. And +1 appreciate your efforts getting this off the ground.

BrainMaestro commented 7 years ago

Hey @lbighetti. That's great. I'll do that right now. Thanks for taking over.

EricSimons commented 7 years ago

@lbighetti @BrainMaestro lmk if there's anything I can do here to help! Should I point the issue to point at @lbighetti's repo?

lbighetti commented 7 years ago

@EricSimons I think that makes sense 👍

EricSimons commented 7 years ago

@lbighetti hows the codebase coming along for this? I can't wait to see it! Btw I updated this issue to point at your repo 👍

lbighetti commented 7 years ago

Hi @EricSimons,

We have just completed implementing the specs ! Can you move us to peer review?

I'm working on deploying this to heroku so we can use frontends with it.

EricSimons commented 7 years ago

@lbighetti awesome work!! 👏 I will move ya to RFC first thing tomorrow morning :)

lbighetti commented 7 years ago

@EricSimons Thanks! Looking forward to joining the rank of backends 🏅

lbighetti commented 7 years ago

Ping @EricSimons 😃

EricSimons commented 7 years ago

@lbighetti done!! So sorry about my delay on this, the past few weeks have been nuts 😅

To everyone who helped put this together: thank you so much, this is seriously incredible work. 👏 I've just created the new repo (https://github.com/gothinkster/elixir-phoenix-realworld-example-app) and listed it on the main readme! Feel free to push any remaining updates for the repo's readme/etc over at the new repo 👍

Again, amazing works and congrats!!

lbighetti commented 6 years ago

Thank you for the kind words @EricSimons And thanks for moving it over! Will continue development there. Best!