To install and run this programme on your local computer, you will need Node.js, MySQL and npm on your computer, and Expo Go on your mobile.
- Clone the repository to your local computer and navigate to the directory where you saved the repository.
- Create a MySQL database, add a user with a password, and grant permissions to the user on that database.
- In the
.env
file in the root of the project, save the above credentials toDATABASE_NAME
,DATABASE_USERNAME
, andDATABASE_PASSWORD
variables, respectively. - Start a terminal window in your repository's directory. Type
npm install
and wait for the process to run. This will ensure that you have the right dependencies installed. - Type
npm run development
to start the server. - Type
cd client
to navigate to the client folder. - Once there, type
npm start
to start the client. - When that is done, type
w
to view the app in your browser. - To view the app on your iOS or Android device, you will need to install Expo Go on them. After that, you can scan the QR code in the terminal.
- Create a MySQL database and user for the project.
- Create a Strapi project and connect it to the SQL database and user.
- Hide database login details and tokens in uncommitted .env file.
- Start Git repository and commit initial project setup.
- Create movies model on Strapi UI and grant all users access.
- Install GraphQL plugin and test the endpoint with a GraphQL query and mutation.
- Install Expo and use it to create a React Native project.
- Create a form to add movies and test the form within the client using console.log.
- Call the backend using a GraphQL query and test that a movie is being added to the database.
- Add styling and test iOS display. Ran out of time to learn Android Studio and test there.
- https://medium.com/react-native-development/easily-build-forms-in-react-native-9006fcd2a73b
- https://stepzen.com/docs/using-graphql/making-queries-with-fetch
- Debug the unresolved promise on iPhone
- Test on Android studio emulator
- Include validation and error handling on the front end
- Add tests to the front end
- Make use of Apollo client to simplify queries
- Deploy the app to learn that process too
- Enable the user to view, edit and delete watched movies
- Improve UX and styling across