Code Monkey home page Code Monkey logo

blogman's Introduction

BlogMan

About

"Publish your words in your way! Whether you'd like to share your knowledge, experiences or the latest news, publish your own articles in a unique and smart way"

BlogMan is a new social blogging platform where anybody can share their views and read other's opinion related to any topic. It is a way to connect with people and to know how the world is thinking. BlogMan is created using the MongoDB, Express, React and NodeJS (MERN Stack).

Built With

MongoDB - Database
Express - NodeJS Framework
React - Frontend
NodeJS - Backend
CKEditor - Creating blogs

Build Setup

In the project directory BlogMan/front-end, run this command to install dependencies:

npm install

In order to run the application:

npm start

Runs the app in the development mode.

Open http://localhost:5000 to view it in the browser.

The page will reload automatically if you make edits.
You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.

MongoDB Connection (Database)

Open "back-end/.env" to setup MongoDB environment and add your MongoDB URI, local or Atlas, client-id, client-secret and Youtube API key.
Console will display "Mongoose connected" if there are no issues with the connection. If there is any pertaining issue, console displays "Mongoose connection failed".

Running the entire app on docker

  • The docker files have been written for both the frontend and backend(inside the respective folders)
  • Make sure you have docker and docker-compose installed on your system.
  • Go to the root directory of the project.
  • Run docker-compose up --build.
  • This will build the individual docker images from within the respective folders and create the containers.
  • The docker-compose file acts as a manager, for the individual docker files. It decides and configures things like which container runs on which port, the names of the containers and even the starting order of the docker containers.
  • We use docker containers to run/develop our apps because they are light weight and while using docker containers, we don't need to have the respective tech-stack(like, npm, angular-cli, react-cli) locally installed on our system. This gives developers the ability to continue to develop projects irrespective of the platforms they are working on.
  • NOTE: The MongoDB database for this project is running and maintained on Mongo Atlas as of now. Since multiple people have contributed to this project, before starting the apps, make sure the required API Keys are in-place(because some API keys are defined inside the respective folders - for both frontend and backend, and not through docker environment variables), otherwise there may be some weird errors.
  • Should you run into some error, please refer the official documentation here

Prerequisites to contribute

  • Basic knowledge of programming
  • Ability to use Git and Github
  • Working knowledge of Flutter is preferable
  • UI/UX skills are appreciable but not mandatory

Contributing

How to contribute:

GSSOC'20

1. Fork this repository.

2. Clone the forked repository.

git clone https://github.com/<your-github-username>/BlogMan

3. Navigate to the project directory.

cd girlscript_app

4. Create a new branch.

git checkout -b <your_branch_name>

5. Make changes in source code.

6. Commit your changes.

  git add .
  git commit -m "<your_commit_message>"

7. Push your local branch to the remote repository.

git push -u origin <your_branch_name>

8. Create a Pull Request!

Congratulations! Sit and relax, you've made your contribution to BlogMan project.

Contribution Guidelines

  • Write clear meaningful git commit messages (Do read this).

  • Make sure your PR's description contains GitHub's special keyword references that automatically close the related issue when the PR is merged. (Check this for more info)

  • When you make very very minor changes to a PR of yours (like for example fixing a text in button, minor changes requested by reviewers) make sure you squash your commits afterward so that you don't have an absurd number of commits for a very small fix. (Learn how to squash at here)

  • When you're submitting a PR for a UI-related issue, it would be really awesome if you add a screenshot of your change or a link to a deployment where it can be tested out along with your PR. It makes it very easy for the reviewers and you'll also get reviews quicker.

  • Please follow the PR Template to create the PR.

  • Always create PR to develop branch.

  • Please read our Code of Conduct.

Guidelines while working on API

We have layed out some guidelines for error handling on the backend. Kindly read and implement it when you're working on any API.

adavijit#96 (comment)

Owner

Avijit Das

Mentors

Avijit Das
Rajat Upadhyay
Pratham Dogra
Ayushi Sanjeev Kumar

Keep Contributing !! We love your input !!

blogman's People

Contributors

rajatmw1999 avatar adavijit avatar irshadjsr21 avatar lakshyajit165 avatar prathamdogra avatar guptavarun619 avatar aditya20t avatar shreyakapoor08 avatar anmolkaur18 avatar simranaggarwal1999 avatar endowmissy avatar swarnimashukla avatar ashishnagpal2498 avatar satyam3976 avatar basilleaf24 avatar bhuwanchandra avatar ankita1811 avatar rukmini-meda avatar schitiz avatar imabp avatar frozengirl-spd avatar nvs16 avatar riajha02 avatar utkzas avatar taran1515 avatar sachindrafernando avatar maheshschand avatar chetanjain10 avatar ignoreintuition avatar adityasanil 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.