This repo consists of the backend for a blogging platform. Most of the features that are in a blog is available here.
- User Signup / Signin
- JWT based Authentication System
- Role Based Authorization System-user/admin
- Blogs Search
- Related Blogs
- Categories
- Tags
- User Profile
- Blog Author Private Contact Form
- Multiple User Authorization System
- Social Login with Google
- Admin / User Dashboard privilage
- Image Uploads
- Load More Blogs
You can access the following endpoints on http://localhost:8000/api
Method | Path |
---|---|
post | /pre-signup |
post | /signup |
post | /signin |
post | /google-login |
get | /signout |
get | /secret |
put | /forgot-password |
put | /reset-password |
Method | Path |
---|---|
post | /blog |
post | /blogs-categories-tags |
post | /blogs/related |
post | /user/blog |
get | /blogs |
get | /blog/:slug |
get | /blog/photo/:slug |
get | /blogs/search |
get | /:username/blogs |
delete | /blog/:slug |
delete | /user/blog/:slug |
put | /blog/:slug |
put | /user/blog/:slug |
Method | Path |
---|---|
post | /category |
post | /tag |
post | /contact |
post | /contact-blog-author |
get | /categories |
get | /category/:slug |
get | /tags |
get | /tag/:slug |
delete | /category/:slug |
delete | /tag/:slug |
Method | Path |
---|---|
get | /user/profile |
get | /user/:username |
get | /user/photo/:username |
put | /user/update |
put | /user/follow |
put | /user/unfollow |
There are two ways to contribute to this project. submitting new features or fixing bugs
Please contribute! There are plenty of work to do. To get started, you have to fork this repo to your own GitHub account first. Then open up a terminal on your machine and enter the following commands:
Add the requirements in the .env file
git clone https://github.com/<your user name>/blog-engine.git
cd blog-engine
npm install
npm start
or
docker pull sujjjan/blog-engine
This will start the development server on http://localhost:8000/
. This should reload automatically when you make changes to the code, but no code is perfect, so sometimes you may need to restart it. :)
If you want to submit a new feature or a bugfix, the best way is to create the changes in a separate branch, e.g.: git checkout -b feature/mycoolfeature
. This will make it easier for you to submit a pull request and get your feature merged.
Upgrading this project to typescript are most welcome