Необходима доработка мобильного приложения которая на React Native
Доступы к проекту предоставим после соглосования.
Так же желательно знание английского (но не обязательно)
8evolve was built using the following technologies:
The 8evolve app is built with React Native in order to have a single codebase that can be deployed to both the App Store and the Play Store.
Navigation around the app is built with react-navigation, a JS library with navigation as close to native as it gets. Network requests are all handled by Apollo and GraphQL, with a set of queries and mutations provided by Hasura.
App state was designed to give unauthenticated users the ability to explore the list of Leaders and Upcoming Community Sessions, to proactively avoid getting rejected by Apple since they require a reason behind asking users for their Personal Information.
Everything starts in App.js, where we initialize all the data needed for the app such as authenticated user information, leaders information, making sure we have the logged in user’s timezone, and initialize the different contexts used throughout the app. From there, all screens are in the screens folder, and all navigation stacks are in components. Additionally, all components we use over and over again are in the components folder, 4 in particular, TextRegular, TextMedium, TextBold, and Input, defined in components/common/Typography.js, must be used instead of Text and TextInput in order to make sure all text has the correct font. Through the App, we mainly used functional components with React Hooks, so if you’re not familiar with hooks, https://reactjs.org/docs/hooks-intro.html is a solid resource.
Switching back to the codebase of our Firebase functions, Hasura actions are defined in functions/lib/hasura_actions and Hasura Event handlers are defined in functions/lib/hasura_events. Here we use the graphql-request library to handle network requests, so all Hasura Actions and Event handlers take a client param and use it to perform Graphql requests. Additionally, all Twilio and SendGrid usage happens here, either in Hasura Actions or Hasura Events.
Across both codebases, you’ll notice that some graphql queries are defined in lib/queries.js, and some are defined in the files where they’re used. It’s always pretty easy to tell.
To implement Stripe using Payment Intents, we used tipsi-stripe (https://github.com/tipsi/tipsi-stripe). Their documentation does a pretty good job of walking you through setup and explaining their decisions. For questions, feel free to join their discord server.
Hasura: Important Note For Development
In development, make sure you go through the proper Hasura setup in order to maintain migrations locally and to be able to apply them later, instead of making changes directly https://hasura.io/docs/1.0/graphql/core/migrations/basics.html#migrations-basics is a great resource to make sure Hasura is setup and running correctly for development.