Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
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 https://github.com/spacemeshos/cosmic/issues/2 - thanks for your contribution!
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.
- 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](https://github.com/ethanneff/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
- Use [Jest testing suite](https://jestjs.io/)
- 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](https://palantir.github.io/tslint/)
- Use [create-react-app-typescript](https://github.com/wmonk/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
- [x] 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
- [ ] 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