Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alphavio/wordnook

Dynamically updating blogging website to upload articles and blog posts on various topics, developed using ejs template engine and node js in the backend.
https://github.com/alphavio/wordnook

css ejs expressjs hacktoberfest heroku html mongoose nodejs

Last synced: about 2 hours ago
JSON representation

Dynamically updating blogging website to upload articles and blog posts on various topics, developed using ejs template engine and node js in the backend.

Awesome Lists containing this project

README

        


WordNook







A sneak peek into what we have here



![wordnook](https://user-images.githubusercontent.com/54665036/120497609-2e2f3800-c3dc-11eb-96a5-e72dfab93013.gif)


## About-

![Forks](https://img.shields.io/github/forks/ALPHAVIO/WordNook?style=social) ![Stars](https://img.shields.io/github/stars/ALPHAVIO/WordNook?style=social) [![GitHub issues](https://img.shields.io/github/issues/ALPHAVIO/WordNook?color=green&logo=github&style=flat)](https://github.com/ALPHAVIO/WordNook/issues) [![GitHub PRs](https://img.shields.io/github/issues-pr/ALPHAVIO/WordNook?style=flat&logo=github)](https://github.com/ALPHAVIO/WordNook/pulls) ![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=ALPHAVIO/WordNook)

[![All Contributors](https://img.shields.io/badge/all_contributors-28-orange.svg?style=flat-square)](#contributors-)

[![Discord](https://img.shields.io/badge/Join_ALPHAVIO_Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/9SgPjvhqEj)

- 'Blog' and 'blogging' are now loosely used for content creation and sharing on social media, especially when the content is long-form and one creates and shares content on regular basis.

[![Edit with Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/ALPHAVIO/WordNook)

- This is a dynamically updating Blog posting website developed primarily using Node Js with EJS template engine and Mongoose as ODM(Object Data Modeling library).
[Visit website](https://word-nook.herokuapp.com/)


## Technology Stack 🛠️

- **Coding Languages**: JavaScript HTML5 CSS3

- **Tools & Frameworks**: NodeJS Express.js MongoDB Mongoose EJS template engine

- **Project Management Tools**: GitHub Git


## Environment Setup for local use-

* Drop a :star: on the GitHub repository.

* Download [Git](https://git-scm.com/downloads) (when you install Git, Git Bash also gets installed by default)

* Download and install a code/ text editor.
- Recommended-
- [Download VS Code](https://code.visualstudio.com/download)
- [Download Atom](https://atom.io/)


### Option 1 (Installation using NPM and MongoDB)

* Download [Node Js and npm(Node package manager)](https://nodejs.org/en/) (when you install Node, npm also gets installed by default)

* Mongo DB community editition is free and a great software in order to work with MongoDB applications. [Download Mongo DB community editition](https://docs.mongodb.com/manual/administration/install-community/)

* Robo 3T is a desktop graphical user interface (GUI) for Mongo DB. It can help to skip running all the Mongo DB commands manually every time we want to access the data. [Download Robo 3T](https://robomongo.org/download) **(optional)**

* Clone the repository by running command
```
git clone https://github.com//WordNook.git
```
in your git bash.

* Run command `cd WordNook`.

* Run this command to install all dependencies for the project.
```
npm install
```


* Adding secret key for JWT auth.
* Run this command when inside the root directory to make a `.env` file.
```
touch .env
```
* Now add this to the `.env` file
```
SECRET_KEY = AlphaVio
URL = mongodb://localhost:27017/wordnookDB
NODE_ENV= 'development'
```

* Testing : Run this command on your terminal/ bash to start the Mongo server on port 27017(default).
```
mongod
```

* Run this command to start the project.
```
npm start
```

or

* Run this command to start the project as a developer.
```
npm run dev
```

* Open link to view the website in your browser window if it doesn't open automatically.
```
http://localhost:3000/
```

### Option 2 (Installation using Docker)

* Download and install [Docker](https://www.docker.com/products/docker-desktop).

* Clone the repository by running command
```
git clone https://github.com//WordNook.git
```
in your git bash.

* Run command `cd WordNook`.

* Run this command to start the project:

```
docker-compose up --build
```

* Now explore the project and make the changes as you want. Once the changes are made then run the following command again:
```
docker-compose up --build
```
This would again create a new image with your changes and will use it to start the containers. Now when you visit `http://localhost:3000/` you would see your changes.

* Once you are satisfied and want to make a PR then run following command:
```
docker-compose down
```
This would stop all the running containers and will also delete them.


* Check out our docker image at DockerHub: [Wordnook Image](https://hub.docker.com/r/alphavio/wordnook) or you can directly search `wordnook` on [DockerHub](https://hub.docker.com/search?q=&type=image) (This just for your reference and is not required for installation)

* You can learn more about Docker and its implementation at [Docker Documentation](https://docs.docker.com)

* You can learn more about EJS template engine and its syntax to know how we can use it inside our HTML using the [documentation](https://ejs.co/#docs)

* Now you are all set to use this project.

#### Some useful Mongo DB commands if you are using the terminal instead of the GUI-
```
show dbs
use db
show collections
.find()
```

#### Project Deployed on Heroku : [Visit WordNook](https://word-nook.herokuapp.com/)


### Note -

1. - If your git shows an issue with your `package-lock.json` while installing dependencies or throws error that **lockfile version-2** is not compatible with your system
Then check your npm version by running command
```
npm --version
```
- **npm version should be 7 and above for lockfile version-2 that would come by default if you have a node version 15 and above.**
[List of Node.js releases and corresponding npm versions](https://nodejs.org/en/download/releases/)

- After upgrading your npm version, you can delete your `package-lock.json` file and run `npm install` again to fix the issue.

### Disclaimer-
The `Contact Us` feature might not work in the local environment since the API-Key has not been shared. If you still want to work on it, generate your own API key from [Mail Gun](https://www.mailgun.com/) and include it in the `.env` file as
```
MAILGUN_API_KEY =
```


## Open Source Events Project is associated with:

1. JGEC Winter of Code

- JWoC ( JGEC Winter of Code) is a program organised by Developers JGEC in collaboration with Sristi 2020 which helps students to plunge into the realm of Open Source contribution and Software Development.

2. Mexili Winter of Code

- Mexili is a Free and Open Source organization whose motivation is to funnel learning and implementation through Open Source Software Development.

3. GirlScript Summer of Code

- GirlScript Summer of Code is the 3 month long Open Source program conducted by GirlScript Foundation, started in 2018, with an aim to help beginners get started with Open Source Development while encouraging diversity.

4. PClub Summer of Code

- PSOC( PClub Summer of Code ) is the 2 month long Open Source program during summers conducted by Programming Club, UIET, with an aim to help beginners get started with Open Source Development while encouraging Diversity .

5. Let's Grow More Summer of Code

- Let's Grow More Summer of Code is a one month long Open Source program organized by LetsGrowMore Community to encourage student participation in open source software development under the guidance of mentors from the open source community.

6. Developer Days

- The league of Developer Days is a 5-week long Bootcamp + Hackathon event, organized by Developer Days Community consisting of various sessions and challenges including contributions to Open Source Projects, with an aim to encourage students to get familiar with hands-on projects and software development.


## Maintainers ✨



Pranav Mendiratta

💻📖 🚧

Ananya Negi

💻 📖 🚧

Rushan Khan

💻 📖 🚧

Pranav Singh

💻📖 🚧

Ayush Jain

💻 📖 🚧

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Anubhab Sarkar

🎨

Subhra264

💻

Sahil Saha

💻

uttu2

📖

pankaj kumar bijarniya

📖 💻

Niveditha Palli

🖋 💻

Lucky kumari

📖 💻



kanhaiya lal

💻

Tushar Jain

📖 💻

Karun Karthik

💻

Harshit Aditya

💻

Aayush Garg

📖 💻

Abhijay Jain

💻 📖

Monojit Chakraborty

💻



Ankita297

💻 📖

Aniket Lodh

💻

Monika Jha

💻

vismitap

💻

Ananya Negi

💻 📖 🚧

Rushan Khan

💻 📖 🚧

Ayush Jain

💻 📖



Aanchal Rakheja

💻 🎨

Pranav Singh

💻

Tanishq Arya

💻

Satyam Singh

💻

Soumya Singh

💻

Osama Magdy

💻

Rhythm Verma

💻

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!


## Stargazers over time 🌟

[![Stargazers over time](https://starchart.cc/ALPHAVIO/WordNook.svg)](https://starchart.cc/ALPHAVIO/WordNook)