Skip to content

ilgoncalves/tv-sync

Repository files navigation

TvSync

TvSync is a React Native application that allows users to browse, search, and keep track of their favorite TV series. The application uses the TVMaze API to fetch series data.

The application is built using React Native and MVVM (Model-View-ViewModel) architecture for better separation of concerns and easier code maintainability. Zustand is used for state management, providing a lightweight and simpler solution for handling global state. For designing an expressive UI, the Magnus UI library is utilized, which offers a set of well-designed, customizable components.

Features

  • Browse all series from the TVMaze API
  • Search series by name
  • View detailed information about a series and its episodes
  • Set a series as a favorite
  • Remove series from favorites
  • Browse favorite series and view detailed information about them
  • Search for people involved in a series
  • View detailed information about the person searched and series they have participated in
  • Display next scheduled shows
  • Subcategorize series per genre
  • Support for multiple languages with i18n
  • Cool animations for a better user experience
  • Browse favorite series in alphabetical order
  • Search for people involved in a series
  • View detailed information about person Searched and Series they have participated
  • Secure the application with a PIN number or fingerprint authentication (for supported phones)

Getting Started

Note: Make sure you have completed the React Native - [ ] Environment Setup instructions till "Creating a new application" step, before proceeding.

Step 1: Start the Metro Server

First, you will need to start Metro, the JavaScript bundler that ships with React Native.

To start Metro, run the following command from the root of your React Native project:

# OR using Yarn
yarn start

Step 2: Start your Application

Let Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android or iOS app:

For Android

# OR using Yarn
yarn android

For iOS

# OR using Yarn
yarn ios

If everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.

This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.

Prototype

Check the Figma prototype.

APK

The .apk file for the application can be found in this Google Drive link.

Testing

To run the unit tests, use the command: npm test

Contributing

If you want to contribute to this project, please create a new issue or open a pull request.