Client: Expo, React Native, Zustand, Tanstack Query
Server: NodeJS, Strapi, Graphql
Finex is an innovative mobile application designed to provide a unique educational experience in financial education aimed at children and adolescents.
Inspired by the success of educational platforms like Duolingo, Mimo, Busuu, and others, this app adopts a playful and gamified approach to teach essential financial concepts in a fun and accessible way.
Finex operates as a mobile application designed to provide a fun and educational experience in financial literacy for children and adolescents. All content within the app is managed and loaded exclusively through the Strapi client. You can find the Strapi client repository here.
With an attractive visual design, quality educational content, and a captivating user experience, Finex aims to become the ultimate tool for teaching financial education effectively and engagingly to younger generations.
The app is targeted at an audience aged 8 to 16.
Finex is structured in the form of worlds, sections, and levels, with each level presenting a variety of interactive exercises such as completing simple selections, card memory games, and matching pairs.
These activities are specifically designed to encourage active learning and knowledge retention while promoting a gaming environment that motivates users to keep progressing.
- User Login Module
- User Registration Module
- Thematic Worlds
- World Sections
- Lessons
-
- Exercises: Various types of exercises to evaluate user learning, including:
- Theory: A voice assistant reads a pre-placed text supported by images. Other exercises are based on this theory.
- Completion: Fill in the blanks with the correct words.
- Simple Selection: Choose the correct answer from several options.
- Pairing: Select related or identical options, which can be images or texts.
- Memory: Memorize card positions and select pairs after 5 seconds.
- User Profile
- Life Regeneration
- Streak System
- Coins for Unlocking Lessons
- Shop
- Maximum Streak Protectors
The following sections provide instructions to build and run the app for development purposes.
To run the project you need to install the correct version of NodeJS. We recommend the use of a virtual environment of your choice. For ease of use, this guide adopts nodenv for NodeJS,
The node version used in this project is stored in .node-version.
Follow the official tutorial for installing the Expo CLI for your operating system.
If you have a macOS system, you can follow both the tutorial for iOS and for Android. If you have a Linux or Windows system, you need only to install the development environment for Android.
Go to the project directory
cd my-projectInstall dependencies
npm installStart the server
npm run startThe project utilizes environment variables to configure various aspects of its operation. Below are explanations for each of these variables:
-
EXPO_PUBLIC_API_URL: Defines the URL of the public Strapi API used in the application. Make sure to configure this variable with the correct URL of your Strapi instance. -
EXPO_PUBLIC_STRAPI_API_KEY: This is the authorization token (Bearer token) required to authenticate with the Strapi API. Ensure this token is valid and up-to-date to make requests to the Strapi API from the application. -
EXPO_PUBLIC_AUTH_TOKEN: Authentication token used to authorize access to certain functionalities or services within the application. -
EXPO_PUBLIC_RESEND_API_KEY: API key used for performing certain operations related to send emails with Resend.
An Android Emulator must be created and launched manually. Then, from your command line, run these commands:
# Perform the port forwarding
$ adb reverse tcp:8081 tcp:8081;adb reverse tcp:3000 tcp:3000;adb reverse tcp:9090 tcp:9090
# Run Android build
$ yarn run-androidFor support, email jesussflr@gmail.com.
