About this projectย ย -ย Mandatory Featuresย ย -ย Bonus Featuresย ย -ย Demoย ย -ย Technologies and Librariesย ย -ย Roadmapย ย -ย Running the project
This project was build as a technical test. The proposal for this project was create a small mobile app to allow users listing TV series, using the API provided by the TVMaze website.
This project was built using React Native and typescript
Heads up - If the link above doesn't work you find the apk on this path:
android/app/build/outputs/apk/release/app-release.apk
- List all of the series contained in the API used by the paging scheme provided by the API.
- Allow users to search series by name
- The listing and search views must show at least the name and poster image of the series.
- After clicking on a series, the application should show the details of the series, showing
the following information:
- Name
- Poster
- Days and time during which the series airs
- Genres
- Summary
- List of episodes separated by season
- After clicking on an episode, the application should show the episodeโs information, including:
- Name
- Number
- Season
- Summary
- Image, if there is one
- โ Allow the user to set a PIN number to secure the application and prevent unauthorized users.
- โ For supported phones, the user must be able to choose if they want to enable fingerprint authentication to avoid typing the PIN number while opening the app.
- โ Allow the user to save a series as a favorite.
- โ Allow the user to delete a series from the favorites list.
- โ Allow the user to browse their favorite series in alphabetical order, and click on one to see its details.
- โ Create a people search by listing the name and image of the person.
- โ After clicking on a person, the application should show the details of that person, such as: -- Name -- Image -- Series they have participated in, with a link to the series details.
Some of technologies and libraries used at this project:
- Expo ;
- typescript;
- NativeBase => NativeBase is a component library to build universal design systems;
- Lottie => For the animations;
- Async Storage => Data storage system for React Native.;
- expo-local-authentication => To allow user to use FaceID and TouchID (iOS) or the Biometric Prompt (Android) to authenticate the user with a face or fingerprint scan.;
[ ] Replace Async Storage
to Firebase => To improve the security and allow users to create an account and authenticate themselves on the app and store the date on a cloud Database;
[ ] Create tests using Jest
[ ] Improve performance
[ ] Integrate the app with Bitrise => For CI/CD purposes;
1 - To run at the first time the project will be necessary creating a folder
mkdir <folder-name>
2 - Now within the folder
cd <folder-name>
3 - Let's cloning the repository
git clone https://github.com/Fred-Reis/seriesList
4 - Execute the following command to create node_modules
folder
yarn
5 - To install dependencies in IOS project using cocoa pods
$ cd ios
$ pod install
6 - Now, if you want to run this project on the emulator or device in development mode, run this command using your preferred platform.
$ npx react-native run-<your-preferred-platform>
Author: Frederico Reis
Made with