MERN Stack and GraphQL Based Google Play Store
Explore the docs »
View Demo
·
View GIFs
·
Demonstration Video
·
Report Bug
·
Request Feature
Table of Contents
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.
To get a local copy up and running follow these simple steps.
-
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)
This repo has two different branches for different use
main branch for server side (graphql)
client branch for client side (react)
- Clone the repo
git clone https://github.com/felmez/play-store-clone.git
- Install npm packages on both branches
cd play-store-clone
on main branch npm install on client branch git checkout client npm install
- 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
}
- 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'
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 MIT License. See LICENSE
for more information.
Souhaib Felmez