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
- โ๏ธ React Native bare workflow https://docs.expo.dev/bare/overview/
- ๐ฅ Redux & Redux thunk
- ๐ Geolocation
- ๐งญ React Navigation V7
- ๐งน ESlint + Prettier
- โก Fast Image https://github.com/DylanVann/react-native-fast-image
- ๐ Picker Native Select https://github.com/lawnstarter/react-native-picker-select
- โช๏ธ React Native Deck Swiper https://github.com/alexbrillant/react-native-deck-swiper
- ๐+ Many other expo integrations!
- Login and registration with auth token
- Create profile
- Report profiles
- Block / unblock profiles
- Password recovery with email verification
- Update your personal information
- Add photos
- Support single and group profiles
- Like
- Unlike
- Undo
- 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 generated automatically when joining or creating a group
- For now the chat just support text messages
- Chat with your matches
- Delete matches
- Report and block profiles
List based on
- Your location
- Age
- Gender
- Preferences
- Group sizes
- More of the algorithm in the backend!
mailto: damianstonedev@gmail.com
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
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
To find the path to your Android SDK installation, you can follow these steps:
- Open Android Studio.
- Click on "Configure" in the welcome screen or the main window.
- Click on "SDK Manager" from the dropdown menu.
- 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
For iOS
npm run ios
For Android
npm run android
For both you can use the github action pipeline! ๐
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
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
- Push your branch to the remote repository: git push
- Navigate to the GitHub website
- Create the pull request (PR) manually by selecting the correct
feature-branch
you are working on and clicking on the "New pull request" button - Notify the team about your PR through our communication channel: Discord
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
andreact hooks
- To save states or information coming from the backend we use redux and the
Flux Architecture
State
andprops
must be destructured before used- More conventions and patters can be found looking the code
- 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 โค๏ธ