Skip to content
This repository was archived by the owner on Oct 11, 2020. It is now read-only.
This repository was archived by the owner on Oct 11, 2020. It is now read-only.

Alpha seed implementation (New Feature) #2

@avive

Description

@avive

Intro

We are looking for a savvy and experienced front-end Typescript developer to tackle this funded issue.
Please only apply if you believe you can provide a high-quality delivery that satisfies all the requirements outlined in this issue. Feel free to ask any questions about this issue in the conversation module on #2 - thanks for your contribution!

Story

App developers who need to ship their apps across all major platforms will use this seed as the base of their app's codebase because it will save them lots of time and effort writing boilerplate code to support these platforms with one codebase without having any duplicated app logic and UI code.

Requirements

  • Implement the seed using the architecture and frameworks described in the readme.
  • Please review the readme.md for an architectural overview of the different app components and modules and design the folder and project structure so it corresponds to the conceptual architecture modules
  • The seed should be buildable and runnable on all platforms - iOS, Android, Web and Desktop via Electron.
  • Please review the relevant projects in the wiki. For example - this is a working barebones seed for react-native-web typescript
  • We are expecting clean, well documented and polished Typescript code.

Demo App

  • Running the seed should launch a simple demo app
  • Demo App should have 2 screens with content
    • Use case 1 - Basic navigation - Clicking a button on the first screen should access the second screen. Clicking the button on the second screen should display the first screen
    • User case 2 - User Interaction - The first screen should also include a text input box accepting user provided text and a submit button . Submitting the text should display it in a label below the text box. All this functionality should be implemented using Redux for state modifications and UI updates based on state changes

Testing

  • Use Jest testing suite
  • There should be unit tests and integration tests for all implemented functionality
  • There must be a test that validates proper demo app startup on each supported platform. e.g display of first content screen without any errors

Documentation & Coding Style

  • All methods, models, types and interfaces must be documented via short and simple text comments
  • Write basic docs in readme.md that include instructions for setting up the dev env, building, testing and running the seed on all targets
  • Integrate tslint into the build workflow
  • All Typescript code must pass tslint

Guidelines

  • Use create-react-app-typescript and Eject the build scripts so they can be tweaked by hand and we can modify babel, etc...
  • Each module's files should be in a module specific folder and the overall folder structure should be well organized
  • Only use .js files when absolutely required a used framework - Typescript everywhere else
  • Please use yarn and not npm
  • PRs for this issue will be code reviewed and will only be accepted if all of the requirements outlined here are satisfied
  • Use flexbox layout for all react-native views and ui widgets

Developer Requirements

  • You must be an experienced Typescript and node.js developer with some experience with one or more of these frameworks: react, redux, react-native, react-native-web, react router.

Issue checklist

  • All required functionality implemented
  • Demo app running on iOS device
  • Demo app running on Android device
  • Demo app running in web browser
  • Demo app running in an Electron app
  • Demo app navigation and use case works on all platforms
  • Build, test and run docs in readme.md
  • Well organized project folder structure that corresponds to the architecture
  • All methods, types, interfaces and modules are well comment documented
  • Typescript is used when possible instead of Javascript
  • Yarn build, test and run scripts work for all platforms
  • Full unit tests
  • Demo app tests for each supported platform
  • All Views and UI widgets are layed-out using flexbox.
  • Your name added to authors

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions