GithubHelp home page GithubHelp logo

freddydumont / green-list-redwood Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 5.34 MB

Web app to match Vipassana centers' needs to people wanting to volunteer their time and skills

License: MIT License

JavaScript 99.40% HTML 0.60%

green-list-redwood's People

Contributors

freddydumont avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

green-list-redwood's Issues

Sign up form

Finish the sign up form and integrate with backend

Improve the way locales are loaded

Right now, the locales are loaded with the i18next-xhr-backend package and React Suspense as suggested by this guide.

This approach breaks when some other data is fetched and takes precedence. This data's spinner will display, then a with flash from <Suspense fallback={null}> while it loads the locales:

2020-04-11 14 43 45

Handle form submission

Create a GraphQL mutation for form submission. It should:

  • validate the whole form object
  • store new user + profile
  • return success or error object

Content

Issues related to content or translation.

Profile page

Page for authenticated users to manage their calendar availabilities

Implement login flow

Email field -> magic link -> open link in browser -> auth complete -> redirection to /admin (ADMIN) or /profile (USER)

API

Issues relating to the Database and API

Generate front end validation logic dynamically for skills, availabilities

The ids for skills, categories and availabilities are hard coded into the validation schema.

The validation schema should be generated after the GraphQL query runs: generateValidationSchema(ids).

  • replace schemas with functions that accept ids and return schema
  • create a query to get the ids from the db
  • implement for skills and availabilities

Implement magic link authentication

When logging in, all that's needed is an email. If we can avoid a potentially pricy auth provider that'd be the best solution.

Redwood is actively working on integrating Netlify Identity and Auth0.

Auth0 would be much more advantageous for us thanks to its generous free tier (7k free users). We could start with that, and roll out our own solution in the future if we ever reach the 7k limit.

Warn user when using browser's "back" functionality

The form is a SPA, so going back using the browser will lead to potentially unexpected results.
We should warn the user that data will be lost before they attempt navigation.

formMachine.js has a guard called warnBeforeExit that can be used for that purpose. The issue is in triggering it via back button detection.

Validate form data on server side

Individual pages are validated on the front end. When the user submits the form, the submitted data should also be validated before writing to the database.

  • Validate data
  • Handle returned validation errors on front end

Translate and validate content

All content must be validated and translated into French by stakeholders. This can be started when the form is mostly complete.

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.