Skip to content

๐Ÿ’ฐA graphql e-commerce real-world fullstack example (backoffice included)

Notifications You must be signed in to change notification settings

Weakky/prisma-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

97 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

prisma-ecommerce

A prisma e-commerce real-world fullstack example ๐Ÿš€

Homepage view Browsing product view Cart view Payment view

Project paused for a moment while I'm finishing https://github.com/Weakky/ra-data-prisma.

This will allow the backoffice to be far more robust, maintainable, and easier to develop.

Read more about it here

Features

๐Ÿ’ Beautiful, easily customizable react-native app

๐Ÿ’จ GraphQL backend powered by Prisma.io

๐Ÿฆ Support several shops behind the same application

๐Ÿ’ฅ Handcrafted backoffice to manage your e-commerce shop

๐Ÿ” Fully customizable products (variant system)

๐Ÿ’ซ Real-time updates for product availabilities

๐Ÿ’ธ Ready-to-sell Stripe integration (PCI compliant, including 3D Secure)

๐Ÿ”” Push notification system to keep users updated when their orders are prepared

โค๏ธ Made with love for the open-source community

The backoffice

Manage your products, your orders, your customers.

Philosophy

You'll quickly realize that there are no state-management library whatsoever. I'm actively militating against the wrong usage of those. Although a sweet Redux or MobX could have been used in some places (especially on the RN app), this app also acts as a showcase to promote vanilla React. Especially since the new Context API (Although I haven't updated React yet).

Troubleshooting

[Mobile][Android] Error: Network error: Network request failed.

Android is running in an emulator.

The localhost is pointing to the environment in which the code is running. The emulator emulates a real device while the simulator is only imitating the device.

Therefore the localhost on Android is pointing to the emulated Android device. And not to the machine on which your server is running.

The solution is to replace localhost with the local IP address of your machine.

mobile/src/graphql/setupApollo.js


const httpLink = new HttpLink({
  uri: YOUR_LOCAL_IP,
});