This project was bootstrapped with Expo.
In the project directory, you can run:
npm install
update EXPO_PUBLIC_OPENAI_KEY inside .env file using a valid openai token
npm run ios
- then follow the prompts on screen to test the simulators.
Home Screen
Menu Expanded
Menu Collapsed
Chat Screen
Chat Prompt Screen
- The chat-UI should have text streaming support ✅
- The chat-UI should expand / collapse the list of tasks under the heading of “tasks” in the task pane; ✅
- Adjust to different screen sizes and adapt well for mobile layout ✅
- Streaming using SSE (Server-Sent Events) with chatGPT turbo ✅
No state management tool was required aside from component state to keep all the state manageable.
I'd rather use styled components for the style. However, this is a prototype and time was a restriction right now.
typescript was used to help the type safety across the project even so, a few places still missing types.
I'd classify errors by type eg. User errors and Application. Then severety to provide a better experience to the user.
I did not see any opportunity for performance improvements to justify the usage of React.memo and useMemo for instance.
- Add unit tests
- Remove inline css
- Add a linter
Learn how Chat-GPT SSE works then implement in react native was critical during the technical decisions made while developing.