Skip to content

felmez/play-store-crud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license-shield html-shield css-shield mongodb-shield express-shield react-shield nodejs-shield graphql-shield apollo-shield heroku-shield netlify-shield git-shield github-shield


Google Play Store Semi-Clone

MERN Stack and GraphQL Based Google Play Store
Explore the docs »

View Demo · View GIFs · Demonstration Video · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. License
  5. Contact
  6. Acknowledgements

About The Project

This is google play store like app where you can register/login with a user account that holds a authentication token (see: Bearer Authentication ) to keep the session alive even when you close the browser or refresh the pages. With your account, you can submit apps, movies and books or review your or other user's submitted work. You can also delete only the posts and reviews that you logged with the same user who submitted them. There is also validation on register/login forms where you can't keep input fields empty, can't use a username that already exists, or an email that is already used in another account and your passwords must match each other.

Built With

  • mongodb-shield
  • express-shield
  • react-shield
  • nodejs-shield
  • graphql-shield

Demo

  • Client (frontend) link: netlify-shield
  • Server (backend) link: heroku-shield

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • git

    if (you have brew installed ) {
      use this command => 'brew install git'
    } else {
      download the installer from the official website => https://git-scm.com/downloads
    }
  • node

    if (you have brew installed) {
      use this command => 'brew install node'
    } else {
      download the installer from the official website => https://nodejs.org/en/
    }

What is brew ?? (See: Homebrew Package Manager)

Installation

This repo has two different branches for different use

main branch for server side (graphql)
client branch for client side (react)
  1. Clone the repo
    git clone https://github.com/felmez/play-store-clone.git
  2. Install npm packages on both branches
    cd play-store-clone
    on main branch
    npm install
    
    on client branch
    git checkout client
    npm install
  3. Create environement variables
if (you will serve on localhost) {
  on main directory create config.js file 
  paste the follow code 
  then change the URI to your own MongoDB string you can keep secret key empty
  ```
  module.exports = {
  MONGODB: 'mongodb+srv://<username>:<password>@<clustername>.<linkprefix>.mongodb.net/<dbname>?retryWrites=true&w=majority',
  SECRET_KEY: 'some very secret key'
  } 
  ```
} else if (you will use some SaaS hosting services like heroku, netlify etc){
  use process.ENV configuration depends on your server
}
  1. You are good to go
on main directory => 
if (you need to watch changes) {
  'npm run serve'
} else {
  'npm run start'
}
on client directory => 
'npm start'

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 MIT License. See LICENSE for more information.

Contact

Souhaib Felmez

  • Email: sofelmez{at}gmail{dot}com
  • linkedin-shield

Acknowledgements

  • google-shield
  • stackoverflow-shield