Skip to content

Youssef-kobi/Swifty-companion

Repository files navigation


42 Swifty Companion

42 Swifty Companion

A mobile app that retrieves student data from 42's API.

IntroductionKey FeaturesHow To UseLicense

Introduction

Welcome to my app, developed using React Native! This is a cross-platform mobile application that can be run on both iOS and Android devices. The app provides users with a seamless and convenient way to connect to 42's intra and manage their account information.

With my app, users can securely authenticate with their 42 intra credentials using OAuth2.0 protocol, and access their personal information, such as their profile picture, campus location, and academic progress.

I've implemented several features to enhance the user experience, including a bottom navigation bar for easy navigation between different sections of the app, a loading spinner to indicate when data is being fetched from the API, and form validation using React Hook Form and Yup to ensure that user input is accurate and complete.

My app also leverages the power of the Expo framework, which allows for easy deployment of the app to both iOS and Android devices. To get started, simply follow the instructions provided in the "How To Use" section to clone and run the app on your local machine.

I hope you enjoy using my app and find it to be a useful tool for managing your 42 intra account!

Key Features

Swifty Companion

  • User authentication with 42's intra (42 API OAuth)
  • AuthContext and Refresh Token for handling authentication
  • Stack Navigator and Bottom Navigation for navigation
  • Loading component for better user experience
  • Form validation using React Hook Form and Yup
  • Display user profile, including picture, level, and skills
  • Display user's projects, with links to their git repos
  • Display user's campus location
  • Search for other users and display their profiles

How To Use

To run this app on your local machine, follow these steps:

  1. Clone this repository
  2. Install dependencies by running npm install
  3. Create an .env file at the root of the project with the following contents:
CLIENT_ID=<your_client_id>
CLIENT_SECRET=<your_secret_id>
TOKEN_URL=https://api.intra.42.fr/oauth/token
SCOPES=public%20projects%20profile
  1. Replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with your own 42 API OAuth credentials, which can be obtained from the 42 API website.
  2. Run the App
  • Run the app for iOS npm run ios
  • Run the app for Android npm run android
  • If using Expo npx expo start
  1. Follow the instructions in the console to launch the app on your device or simulator

License

MIT

About

A React Native app provides a seamless way to connect to 42's intra & manage account information. Authenticate securely with OAuth2.0 protocol & access personal information.

Topics

Resources

Stars

Watchers

Forks