Skip to content

Provide solutions for post-COVID-19 life. A Social networking application to connect all people of different age groups specifically connecting Young ones with Old ones to solve problems because of which people are stressed and depressed.

License

Notifications You must be signed in to change notification settings

poojarathore30/GHCI-20_CODEATHON_YounGold_

Repository files navigation

GHCI' 20 Codeathon

Link To the final Deployed Application(Integration of chat app and recommender system along with the full stack web app

Team: BrainStabilizer

Web App Name: YounGold

PROBLEM STATEMENT:Provide solutions for post-COVID-19 life
SOLUTION: Built by team Brainstabilizer

A Social networking application named as YOUNGOLD to connect all people of different age groups
specially connecting Young one with Old one to solve problems because of
which people are stressed and depressed.

PROPOSED SOLUTION:
In Post Covid life people will be facing mental health issues due to selfisolation,financial crisis, career uncertainty social- distancing, fear,anxiety, etc.There are many people who are struggling and wish to share their problems with the people who have faced similar problems and are experienced in their field of interest to seek for guidance andcareer paths. Also,There are many elderly retired professionals who arefacing loneliness in this Pandemic and who have ample time and wish to guide young people in their spare time.

Prerequisite

There are two additional folder that you need to extract while setting it up locally ,

1.YounGold (Recommender system folder)
2.YounGold-Chat-Application (For communication purpose folder)
Run both these folder seperately

NOTE:Readme for running both this folder seperately in your local system is available inside it.

Except these two, below are the instruction to run the full stack website in your local system.

You are good to go now :)

Packages must be installed before start writing the code

npm init
npm i express express-validator bcryptjs config gravator jsonwebtoken mongoose request
npm i -D nodemon concurrently

Chages should be made in package.json Instead of test in package.json write this :

"start": "node server",
"server": "nodemon server"

For Front end part using react in client folder

Create a folder inside your root project named client. Go to the client folder by,

cd client

Create a react app using this cmd,

npx create-react-app client

After that, try to open the development server

npm start

and if everything work fine and server gets open then close it using ctrl+c and install few packages, inside client folder only

npm i axios react-router-dom redux react-redux redux-thunk redux-devtools-extension moment react-moment

Changes to GitHub API authentication 🐙

GitHub has depreciated authentication via URL query parameters You can get an access token by following these instructions For this app we don't need to add any permissions so don't select any in the scopes. DO NOT SHARE ANY TOKENS THAT HAVE PERMISSIONS This would leave your account or repositories vulnerable, depending on permissions set.

It would also be worth adding your default.json config file to .gitignore If git has been previously tracking your default.json file then...

git rm --cached config/default.json

Then add your token to the config file and confirm that the file is untracked with git status before pushing to GitHub. GitHub does have your back here though. If you accidentally push code to a repository that contains a valid access token, GitHub will revoke that token.

Quick Start ⚛️

Add a default.json file in config folder with the following

{
  "mongoURI": "<your_mongoDB_Atlas_uri_with_credentials>",
  "jwtSecret": "secret",
  "githubToken": "<yoursecrectaccesstoken>"
}

Install server dependencies

npm install

Install client dependencies

cd client
npm install

Run both Express & React from root

npm run dev

Deploy to Heroku ☁️

If you followed the sensible advice above and included config/default.json and config/production.json in your .gitignore file, then pushing to Heroku will omit your config files from the push.
However, Heroku needs these files for a successful build.
So how to get them to Heroku without commiting them to GitHub?

What I suggest you do is create a local only branch, lets call it production.

git checkout -b production

We can use this branch to deploy from, with our config files.

Add the config file...

git add -f config/production.json

This will track the file in git on this branch only. DON'T PUSH THE PRODUCTION BRANCH TO GITHUB

Commit...

git commit -m 'ready to deploy'

Create your Heroku project

heroku create [Appname]

And push the local production branch to the remote heroku master branch.

git push heroku production:master

Now Heroku will have the config it needs to build the project.

Don't forget to make sure your production database is not whitelisted in MongoDB Atlas, otherwise the database connection will fail and your app will crash.

After deployment you can delete the production branch if you like.

git checkout master
git branch -D production

Or you can leave it to merge and push updates from another branch.
Make any changes you need on your master branch and merge those into your production branch.

git checkout production
git merge master

Once merged you can push to heroku as above and your site will rebuild and be updated ready.


Run both Express & React from root ✔️

Now you can run from root of your project using command

npm run dev

This will run both your server and development environment too. and you're good to go :)

This full Stack App has integrated with the other two App as well, i.e
1.Chat App and
2.Recommender System
Here you go :)

Demo of the Project 🚀 💯

Cheers! 🚀 💯

About

Provide solutions for post-COVID-19 life. A Social networking application to connect all people of different age groups specifically connecting Young ones with Old ones to solve problems because of which people are stressed and depressed.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages