A debate app built with React Native / Expo. Using Firebase as backend.
Contact me
·
Report Bug
·
Request Feature
Change My Mind was a project I was making with Kotlin but I aborted the project. Then last month I started this project from stratch with React Native this time to learn more and get more experiment in React Native. I wanted to make this project in 1 month as a goal. So everything I've done is a month of labor. ~%90 of my goals are done. After all I have a working project although it has some problems. These problems are not a big deal but I am done with this project now. I will continue to develop this project in places. I used Firebase as backend, I will create my own backend one day if I start development in backend. Because some part of app is not working well because of Firebase's limits. If you like my project and want to cooperate please contact with me ^^
This is a debate app basically. You can create a debate on any topic to challenge a user to change your mind. You will present your ideas in rounds. At the end of rounds, there is a voting period to able other users vote your opinions. After all most voted user wins the debate. If you already changed your mind and gave up, you can anytime finish the debate and let the opponent wins. I also added point system for win and lose but it is not effective right now because I did not decide that rank system yet.
- React Native
- Expo
- Firebase
- React Navigation
- Formik
- date-fns
- react-native-snap-carousel
- react-native-notifier
- react-native-collapsible
- Welcome and login screens are works perfectly.
Demo video: Click here
Splash Screen: Click here ( animation is not that fast in app actually video is a little fast :D )
- Feed screen: needs to be customized according to the user. Sorting is working but category selection is not because of firestore limits.
Demo video: Click here
- Explore screen: This screen is not working well. I will change almost everything on this screen. Page is so slow because of a lot of queries. "Wiew all" is not working for now, I did not create that screen. Only searching is working well.
- This page is working well but need tests. I know 1-2 bugs, I will work on them. Share button is not working for now. I need deep linking there.
Demo video: Click here
Creating debate demo: Click here
- There are a few bugs/errors sometimes but works well generally.
- As I know everything is working well these screens. Need tests of course.
- Message button is not working. Because the app does not have chatting feature yet.
- Notifications are not working well right now. I will work on them later.
This is an example of how to list things you need to use the software and how to install them.
- expo-cli
npm install expo-cli --global
- You need a firebase configuration file. Contact me to get a test configuration file. Without that config, firebase will not work.
- Clone the repo
git clone https://github.com/anilsenay/Change-My-Mind.git
- Install NPM packages
npm install
-
Put your filebase.config.js file to src/consts/
-
Start the expo metro bundler
npm start
- Notifications / Explore screens will be revised. Especially Explore screen is working with very bad performance.
- Sort / Filter problems (Firestore has max. 10 item limit, so I could not make multi-selection category filtering)
- Profile screen has "Message" button but the app does not have chatting feature. This is a future plan after all.
- Need showing error/success messages after some events. Especially query hooks need better catch functions.
- Discussion and Profile dots modals have "Share" button but Deep Linking is not ready for now. This is a future plan.
- Need tests.
- Firebase provides more ease but owning backend will be better.
- useEffect cleanup functions must to be added later.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GPL License. See LICENSE
for more information.
Project Link: https://github.com/anilsenay/change-my-mind