GithubHelp home page GithubHelp logo

gothinkster / realworld Goto Github PK

View Code? Open in Web Editor NEW
78.2K 1.5K 7.2K 34.42 MB

"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/

License: MIT License

Shell 0.14% TypeScript 86.70% CSS 5.54% HTML 1.04% JavaScript 0.39% Procfile 0.02% MDX 6.18%

realworld's Introduction

RealWorld Example Applications

See how the exact same Medium.com clone (called Conduit) is built using different frontends and backends. Yes, you can mix and match them, because they all adhere to the same API spec 😮😎

While most "todo" demos provide an excellent cursory glance at a framework's capabilities, they typically don't convey the knowledge & perspective required to actually build real applications with it.

RealWorld solves this by allowing you to choose any frontend (React, Angular, & more) and any backend (Node, Django, & more) and see how they power a real-world, beautifully designed full-stack app called Conduit.

Read the full blog post announcing RealWorld on Medium.

Join us on GitHub Discussions! 🎉

Implementations

Over 100 implementations have been created using various languages, libraries, and frameworks.

Explore them on CodebaseShow.

Create a new implementation

Create a new implementation >>>

Or you can view upcoming implementations (WIPs).

Learn more

  • "Introducing RealWorld 🙌" by Eric Simons
  • Every tutorial is built against the same API spec to ensure modularity of every frontend & backend
  • Every frontend utilizes the same handcrafted Bootstrap 4 theme for identical UI/UX
  • There is a hosted version of the backend API available for public usage, no API keys are required
  • Interested in creating a new RealWorld stack? View our starter guide & spec

Active Maintainers

Gérôme Grignon - Maintainer

Gérôme is a Software Engineer at Sfeir. He's an open-source enthusiast.

Manuel Vila - Maintainer

Manuel is an independent Software Engineer, creator of the Layr framework and the CodebaseShow website.

Brought to you by Thinkster

realworld's People

Contributors

abdusabri avatar adam-cowley avatar alonski avatar anishkny avatar apai4 avatar borguuh avatar cameron-c-chapman avatar cirosantilli avatar dependabot[bot] avatar dundalek avatar ericsimons avatar geromegrignon avatar gmlewis avatar harttle avatar imgbotapp avatar jacekschae avatar kainsk avatar lbighetti avatar mutoe avatar mvila avatar nschonni avatar peterhauke avatar ssured avatar stephenfluin avatar subramanir2143 avatar thomashoneyman avatar toddwest avatar tzemanovic avatar vaibhavmule avatar xemexpress avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

realworld's Issues

📱🔧 Java/Android

Current Status

Seeking engineers!

Ready to start this framework implementation? Fork the starter repo, post the link to it in this issue, and then start building Conduit! 🎉

Todo:

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

Would be really cool to see a native Android Conduit app ❤️

Any Android folks out there that wanna take this one?

Backend REST API Testing - Chakram/Newman/Frisby?

In the past I have had fun writing automated tests for REST APIs using Chakram. The provided Postman files are great while developing, but it may be worth having automated REST API tests.

Maybe we can "auto-derive" Chakram tests from the Postman specs or have both automated tests and Postman specs derived from a single source, to achieve a one-truth model for the API spec.

Alternately, Newman seems promising as an automated Postman collection runner.

Another library that can be used for this is FrisbyJS.

Performance matrix for framework comparision

It would be great if we would have some performance matrices to compare different frameworks (frontend/backend) just like TodoMVC has. Since the specs are same and for every framework same tasks are being followed we can write some automated scripts and check the performance for the tasks this way.

Pre-flight error

Hello, guys.

I'm making the Build an Angular 1.5 application with ES6 and Components tutorial and, when I try to make a POST request using $http for /api/users, like specified in API.md, I get an error on the pre-flight:

XMLHttpRequest cannot load https://conduit.productionready.io/api/users. Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:4000, *', but only one is allowed. Origin 'http://localhost:4000' is therefore not allowed access.

I made the same request using curl on my console and got no error. I was able to create a new user and also login (i.e. no OPTION request, no pre-flight).

$ curl -X POST https://conduit.productionready.io/api/users -vsL -d "{\"user\":{\"email\":\"[email protected]\", \"password\":\"12345678\"}}" -H 'Content-type: application/json'

So, it seems to be a server side problem. Can someone check it, please?

🖥 🔧 Polymer

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!

Anyone out there interested in this? Many folks have been asking for a RealWorld Polymer codebase.

Django and mongodb

how to create this api when i use django and mongodb as a backend
and how to make authentication
please help me
thank you in advance

📱🔧 Swift

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!

Would be really cool to see a native iOS Conduit app

Any Swifters out there that wanna take this one?

🖥 🔧 Relay

Current Status

Seeking engineers!

Ready to start this framework implementation? Fork the starter repo, post the link to it in this issue, and then start building Conduit! 🎉

Todo:

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

Originally from #6

🗄🔧 Elixir + Phoenix

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

I would like to work on this

AngularFire, ReactFire, VueFire, etc

We currently have a Firebase + GCP backend in the works, but it would also be cool to create "backend-less" versions of Conduit using Firebase's JS libs.

A good strategy might be to fork our existing Angular/React/Vue etc RealWorld codebases, rip out all the API logic and replace it with Firebase methods.

Also, considering Firebase's data is non-relational, implementing the feed/following/liking functionality might be a bit tricky. So before we get started on any of these, I think it would be great to have one of the Firebase folks advise a standard data spec that all of these frontends could adhere to.

🗄🔧 Firebase + GCP Cloud Functions

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

My most favorite backend as a service! ☺️

Add oauth2 social login option

I love that you included JWT for authentication, but I think that it will be very instructive to also add the option to log in using common oAuth2 providers, like github or facebook. This is a common issue we have when developing a fullstack app, and some examples of this would be greatly appreciated.

Image Upload (API Spec)

Hello,
Thanks for this great specs.
I have suggestion for adding a image upload feature in the API spec while it is tricky thing and mostly needed.

Thanks

🗄🔧 Koa.js(Node.js) + knex(SQL)

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!

🗄🔧 Laravel

Current Status

Todo:

  • 🎨 Create logo for repo & update issue status (@EricSimons)
  • 🏁 Fork the starter repo & post the link in this issue
  • 🔨 Implement all of Conduit's functionality per the spec & API
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release and officially list it on the README!

I would love to work on this!

🖥 🔧 Aurelia

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!

http://aurelia.io/

🗄🔧 HapiJS

Hapi is the server-side node framework which powers Walmart's mobile site, among others. If it can handle black friday, it's a prime candidate for realworld!

With Joi for seamless validation, and Boom for consitent API errors, Hapi makes API creation a breeze, and a refreshing change from the raw-edges of express.

I'll request this here, and if nobody picks it up I'd be more than happy to start building it.

🖥 🔧 Vue.js

Current Status

Codebase in progress @ github.com/vilsbole/realworld-vue

Interested in helping out? Say hello! 🎉 gitter.im/realworld-dev/vue

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

Anyone out there interested in this? Many folks have been asking for a RealWorld Vue codebase.

🗄🔧 Go + net/http

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!

Will be built using only standard libraries, per this discussion.

Workshop FYI

Just want to leave an FYI here that I've created a workshop based on the work in the node and react implementations. I've left "thanks" in several places. Just thought you'd like to know :)

Thank you!

https://git.io/testing-workshop

🖥 🔧 React + Mobx

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

I believe the React community would benefit from more examples of Mobx architectures juxtaposed against Redux in non-trivial applications. The only example I'm aware of is the SoundCloud Client developed by the excellent @rwieruch

I'm still getting my feet wet in the React ecosystem, but will take this on if there is not interest from a more experienced member in the community.

Shorten pagination lists

Here's a screenshot from the demo homepage:

screen shot 2017-04-24 at 10 47 27 am

That's a bit of an eye sore.

A more visually appealing approach would be to show a max of 5 pages, plus a link to page 1 and a link to the last page.

Thoughts?

Push notifications (mobile)

I was just thinking, it might be nice for us to host an APNS/GCM server that mobile apps can connect to and receive push notifications for (i.e. For notifications about comments, likes, etc on the users' conduit posts).

Push notifications are part of nearly every mobile app, so I think this would be a good addition to make it "real world". Thoughts?

Ionic 2+ [Mobile]

Anyone out there interested in this? Many folks have been asking for a RealWorld Ionic 2 codebase. We haven't created any RealWorld based mobile apps (yet), so this would potentially be the first one :)

🗄🔧 Node.js Lambda + DynamoDB

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

Thanks @anishkny for taking lead on this! 🍻

🗄🔧 Spring (w/ Spring Boot)

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!

🗄🔧 Rust

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

🖥 🔧 Ember

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

I am planning to start working on this 😄
Check it out: https://github.com/gothinkster/ember-realworld

🗄🔧 Dotnet Core (C#)

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

Hello

If anyone's interested, I'm trying out a dotnet core backend fork.
Can find it here : https://github.com/abauzac/realworld-netcore-kit

The architecture is based on a colleague's work ( https://github.com/renaudcalmont/aspnetcore-mongodb-sandbox ) but if anyone wants to give a hand, you're welcome :)

Thanks to the admin's project btw

Fullstack repo

As evidenced by this issue, wiring up frontend and backend can be non-trivial. It would be useful to have a single repo that I could clone, and say npm start and it would give me both a running backend and frontend.

This repo could depend on appropriate BE and FE repos via package.json. E.g. something like:

{
  "name": "realworld-fullstack-node-angular",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node ./start_fullstack.js"   <---- all your base are belong to us
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "conduit-angularjs": "https://github.com/gothinkster/angularjs-realworld-example-app",
    "conduit-node": "https://github.com/gothinkster/node-express-realworld-example-app"
  }
}

🗄🔧 Go + Gin

Current Status

Codebase in progress @ github.com/chrislewispac/realworld-starter-kit

Interested in helping out? Say hello! 🎉 gitter.im/realworld-dev/golang-gin

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

Not sure what the most popular web frameworks are for Go, but would be good to have support for at least one or two of them :)

Glitch [Backend Environment]

This is not a new stack per se, but more a super easy to use/remix hosting environment for NodeJS apps.

I ported the RealWorld NodeJS backend repo over to glitch here, with few tweaks:

https://glitch.com/edit/#!/realworld

(Instructions in the README)

To get it working, you would need a hosted MongoDB instance, which you can get from say mLab for free.

Glitch is an amazing platform that: "With working example apps to remix, a code editor to modify them, instant hosting and deployment - anybody can build a web app on Glitch, for free." More at glitch.com/about

In future, perhaps some of the amazing folks at Fog Creek could help get the RealWorld project tighter integration/higher visibility? 😉 wot say: @InPermutation @pketh @STRd6

Meta: Lambda (All Languages) + DynamoDB [Backend]

Current status

  • Node Lambda + DD: #37 WIP
  • Python Lambda + DD: Seeking Engineers!
  • Java Lambda + DD: Seeking Engineers!
  • C# Lambda + DD: Seeking Engineers!

Similar to #21, it would be interesting to try and implement the backend using just AWS DynamoDB and Lambda functions. Something like serverless could be used to quickly scaffold the requisite API.

📱🔧 Jasonette

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!

Background:

Jasonette is a radical new way to develop native Android/iOS apps using just JSON... yes you heard me right!

The entire app is specified by a single JSON object, served over HTTP, which is then hydrated on the fly for a native mobile experience.

It would be cool to see RealWorld implemented using Jasonette!

Perhaps @gliechtenstein would be up for the task?

🖥 🔧 Elm

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!

📱🔧 Ionic 2+

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!

This has been a common RealWorld framework request. @mlynch — know anyone in the team/community who would be down to add support for this? :)

🗄🔧 Node + GraphQL

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!

📱🔧 React Native

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
  • 👀 Peer review of final codebase by RealWorld admins & community (RFC)
  • 🎉 Tag v1 release, move repo to main org, and officially list it on the README!

Anyone out there interested in this? Many folks have been asking for a RealWorld React Native codebase. We haven't created any RealWorld based mobile apps (yet), so this would potentially be the first one :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.