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!
![](https://private-user-images.githubusercontent.com/63305840/293101864-4085a6f7-9ffc-469d-88ef-11c54e82149a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwNjM5MDUsIm5iZiI6MTcxOTA2MzYwNSwicGF0aCI6Ii82MzMwNTg0MC8yOTMxMDE4NjQtNDA4NWE2ZjctOWZmYy00NjlkLTg4ZWYtMTFjNTRlODIxNDlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIyVDEzNDAwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThjZWNlMjcxYTU4Y2FlZTkyNjRiNGRmYTgzN2ZlN2JkYjc1MTE0MjM3MmJlNDEyZWJkNzllYTE1MzFmMTQ4ZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.PZ4muEMXARtsbe3DOvt39m2aJLB0kbHJeje7VzNHfvw)
- 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