Skip to content

๐Ÿ’ƒ๐Ÿ•บ๐ŸผReact Native (bare) social dating app where users can create a group with their friends, match with other groups, chat and hang out

License

Notifications You must be signed in to change notification settings

damianstone/toogether-mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

What's Toogether app?

An app where users can create a group with their friends, match with other groups and hang out

This is just the frontend of the app, if you're looking for the backend: https://github.com/damianstone/toogether-backend

Technologies

Features

๐Ÿ‘€ Basic

  • Login and registration with auth token
  • Create profile
  • Report profiles
  • Block / unblock profiles
  • Password recovery with email verification

๐Ÿ‘ค Your profile

  • Update your personal information
  • Add photos

๐Ÿ’ƒ Swipe single and group profiles

  • Support single and group profiles
  • Like
  • Unlike
  • Undo

๐Ÿ•บ๐Ÿผ Create a group profile with your friends

  • Create a groups
  • Invite friends using unique link
  • If admin (creator of the group): remove and add members
  • If not admin, join to group using the link and leave

๐Ÿ’ฌ Group chat

  • Group chat generated automatically when joining or creating a group
  • For now the chat just support text messages

๐Ÿ’ฌ Matches and chats

  • Chat with your matches
  • Delete matches
  • Report and block profiles

๐Ÿ”— Matchmaking algorithm

List based on

  • Your location
  • Age
  • Gender
  • Preferences
  • Group sizes
  • More of the algorithm in the backend!

mailto: damianstonedev@gmail.com

Initialization

Install the requirements

The following command allows you to install all the requirements using the exact same versions specified in the package.json

npm ci --legacy-peer-deps

Create an .env file

In the root of the project create an .env file with the following variables

MODE = development
IOS_LOCAL_URL = http://127.0.0.1:8000
ANDROID_LOCAL_URL = http://10.0.2.2:8000

Export your ANDROID_HOME SDK path

To find the path to your Android SDK installation, you can follow these steps:

  1. Open Android Studio.
  2. Click on "Configure" in the welcome screen or the main window.
  3. Click on "SDK Manager" from the dropdown menu.
  4. In the SDK Manager window, you should see the path to your SDK installation at the top of the window.
export ANDROID_HOME=/path/to/your/sdk

Run locally

For iOS

npm run ios

For Android

npm run android

Deployment

For both you can use the github action pipeline! ๐Ÿš€

Style standards

To keep the code in a standard style we use Prettier + Eslint

To format the code using Prettier, run the following command: Make sure to run this command before any pull request

npm run format

To check errors in the code style, run the following command:

npm run lint:fix

Pull Requests

Before any merge to develop or rocket, it will be necessary to make a Pull Request and a code review.

Basic PR structure:

your-branch -> feature-branch -> develop -> rocket

Steps for a Pull Request

  1. Push your branch to the remote repository: git push
  2. Navigate to the GitHub website
  3. Create the pull request (PR) manually by selecting the correct feature-branch you are working on and clicking on the "New pull request" button
  4. Notify the team about your PR through our communication channel: Discord

Conventions

The conventions or general rules for the structure of this project are the following:

  • Folders or files that do not export objects or components, in lower case
  • Folders or files that export objects or components in capital letters
  • For all this project we use arrow functions, functional components and react hooks
  • To save states or information coming from the backend we use redux and the Flux Architecture
  • State and props must be destructured before used
  • More conventions and patters can be found looking the code

Summary of limitations

  • The Toogether name and brand are registered; you cannot use the name, designs, or colors.
  • You can use the app for any learning purpose as long as it runs in your local environment. In other words, you cannot deploy our code.
  • You can use the code for learning purposes and references. For example, if you are creating a similar app, you can use our code to learn how to build features like a swipe function and get inspiration from our implementation.
  • You cannot sell this code in any form.
  • You cannot conduct business with this code in any form

More information can be found in the LICENSE file in the root of the project. If you know of someone who is not respecting these limitations, please contact the owner at damianstonedev@gmail.com. The open-source world thrives on our respectful behavior โค๏ธ