Coder Social home page Coder Social logo

anilsenay / change-my-mind Goto Github PK

View Code? Open in Web Editor NEW
31.0 3.0 3.0 391 KB

A debate app built with React Native using Expo. It use Firebase as backend.

License: GNU General Public License v3.0

JavaScript 100.00%
expo-example debate firebase expo discussion react-native react reactjs react-native-app react-native-example

change-my-mind's Introduction


Header photo

Change My Mind

A debate app built with React Native / Expo. Using Firebase as backend.

Contact me · Report Bug · Request Feature

Table of Contents

About The Project

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 ^^

About the app

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.

Built With

Screens

Welcome - Login

Welcome Image

  • 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 - Explore

Feed-Explore Image

  • 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.

Discussion

Discussion Image

  • 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

Join debate - Start new round - Post argument

Argument Image

  • There are a few bugs/errors sometimes but works well generally.

Profile

Profile Image

  • 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

Notifications Image

  • Notifications are not working well right now. I will work on them later.

Database Structure

Structure

Getting Started

Prerequisites

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

Installation

  1. You need a firebase configuration file. Contact me to get a test configuration file. Without that config, firebase will not work.
  2. Clone the repo
git clone https://github.com/anilsenay/Change-My-Mind.git
  1. Install NPM packages
npm install
  1. Put your filebase.config.js file to src/consts/

  2. Start the expo metro bundler

npm start

Issues - Future plans

  • 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.

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GPL License. See LICENSE for more information.

Contact

@anilsenay

Project Link: https://github.com/anilsenay/change-my-mind

change-my-mind's People

Contributors

anilsenay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.