gothinkster / realworld

"The mother of all demo apps" β€” Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more

Home Page:https://main--realworld-docs.netlify.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ—„πŸ”§ Haskell / Servant

sotojuan opened this issue Β· comments

Current Status

Todo:

  • 🏁 Fork the starter repo & post the link in this issue
  • 🎨 Create logo for repo & update issue status (@EricSimons)
  • πŸ”¨ Implement all of Conduit's functionality per the spec & API
  • πŸ‘€ Move repo to main org & Peer review final codebase by admins/community (RFC)
  • πŸŽ‰ Tag v1 release and officially list it on the README!

I'm not able to do this at the moment, but I'm putting it out there for exposure. I'd like to see a Haskell backend implementation (using Servant or something else)!

Just wanted to chime in and say that I'd love to see this as well β€” anyone out there know Haskell?

Sounds fun, I'll try to get something going tonight, but don't sign me up yet :)

@zudov def keep us posted! :)

I'm working on servant version of a backend here.

I'll let you know when I get all endpoints implemented.

I've got all endpoints implemented to a somewhat working state (code is a mess, though). I'll open issues on my repo about what is left to do.

I'm pretty sure I can pull this one off. Should I file a new issue about my project or will we lift this one to a WIP status?

You can definitely take your time and get the code cleaned up and tested. There's no reason to wait for others to join :) If anyone wants to contribute then they can work with your repo via PR's.

I'll edit the main comment with additional information. We can have this continued here.

@EricSimons we need your logo magic for this one

I mean - issues to track project status. I don't need contributions atm. Feel free to remove "seeking engineers" tag.

I've already updated the main comment of this issue with the repo info and status. We can track the project status and progress here. I'll remove the tag πŸ‘

🎀 Do you believe in magic?

haskell

Thanks!

Since Haskell has several FE and BE frameworks, it would be a good idea to make sure to tag this as Haskell / Servant or Servant rather than just Haskell. (Servant is unique in the way it chooses to reify constraints in the type system and the language extensions it relys upon.)

commented

I made an implementation in Haskell. I used servant for the API and Beam for the database. Not really sure what else I should do with it.
https://github.com/boxyoman/haskell-realworld-example

@boxyoman

I made an implementation in Haskell. I used servant for the API and Beam for the database. Not really sure what else I should do with it.
https://github.com/boxyoman/haskell-realworld-example

blog about it.

I think we need to make this real-world-app re haskell+servant to not in the "work-in-progress" status?

@sotojuan

looks like i've done it and the write up can be read here.

@boxyoman sorry this must have slipped thru the craks. Is your implementation API complete? Can you run the supplied Postman API tests against your backend.

Also would it be possible to provide a Dockerfile to try and spin up your backend? Might be easire for folks to try out than current setup steps. Oh and adding CI support also helps newbies figure out how to build/test (Travis/Circle/Azure Pipelines)

commented

@anishkny The API is complete. I had to modify the supplied Postman API tests because the test did things it the wrong order (ex. It would ask for something before creating it, log in then log out then ask for something, etc). After modifying, it passed the tests. Then I put the Elm frontend on it and found a few other bugs that the tests didn't catch.

I'll try adding docker-compose to it to launch a postgres database and the program. The current way I'm running it doesn't work on macOS anymore and never worked on windows.

I don't currently have any tests which is something I know is needed.

Hello we are currently moving all work in progress to Github Discussions.
I'll close this issue by now, you can find instruction to open a discussion there : #633

Thanks for your contribution !