Skip to content

ashish-hacker/KHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub code size in bytes GitHub last commit GitHub stars My stars GitHub forks Code size Languages Top Issues Watchers

KHub

Knowledge-Hub is your all in one destination for resources for your studies. Be it the book or the assignment questions. You don't have to worry about them. We have all of them organized in a single place.

Table Of Contents

Motivation

In this era of information there is no shortage of informations and resources. Especially student communities are always in need of correct information and resources whenever they need. So that they can learn new things in a hassle-free manner. But often Students get overwhelmed with so many options and fail to choose the correct resource. Choosing the correct resource takes a lot of time. Where KHub comes into play.

Tech Stack

Client: React

Server: Node, Express

Database: MongoDB, Azure Blob Storage

Installation

Get Started with cloning the repo

  git init
  git clone https://github.com/ashish-hacker/KHub.git
  cd KHub

Install backend dependencies with npm

  cd backend
  npm install

Install frontend dependencies with npm

  cd frontend
  npm install

Now You are good to go.

Run Locally

Go to the project directory

  cd KHub

Start the app

  cd frontend
  npm run start

Now your app is running on the deployed backend server.

Environment Variables

To run the backend also locally, you will need to add the following environment variables to your .env file with your own values.

MONGO_URI : MongoDB connection string

API_PORT: Port where the Backend server will run

TOKEN_KEY: A key for creating jwt tokens

CONTAINER_NAME: Azure Container Name

AZURE_STORAGE_CONNECTION_STRING: Storage Connection String

ACC_NAME: Azure Account

TEMP_CONTAINER_NAME: To be reviewed Container name where the to be reviewed files go

SEARCH_API_KEY: Azure Search API key

SEARCH_API_ENDPOINT: Azure Search Endpoint

SEARCH_SERVICE_NAME: Azure Search Service Name

SEARCH_INDEX_NAME: Azure Search Index Name

SEARCH_FACETS: Facets

IN_REVIEW_CONTAINER: To be reviewed Container name where the to be reviewed files go

After you have defined your .env variables you can start your backend by :

cd backend
npm run server

Features

  • Searches through the content of the file for the given query
  • Files uploaded by students will only show up if approved by Teachers
  • Can easily search and download files
  • Can find files of certain topic, author or content of the file
  • Can Post Questions on Forum and get answered from peers and Teachers
  • Add Likes to Posts and Files uploaded by peers and Teachers
  • Only Teachers can delete uploaded Posts and Files
  • Register and SignIn

API Reference

API reference

Documentation

In KHub , we bring students and teachers together. Teachers ensure that the right resources and information reach the students.

  • Whenever a student uploads a file, before reaching to other students, It have to be approved by any of the teacher.
  • In KHub, students can search whatever they need in the search bar, the search results will show the most relevant resources related to the query by searching through the contents of the files , authors and topics of the files. For example, if someone needs resources on Dijkstra Algorithm, they can search Dijkstra on the search bar, then all files which are most relevant to Dijkstra or contain the term in them will show up.
  • After the search results have come up, One can choose the file with maximum votes or any particular uploader or topic.
  • Also in Forum section, One can post their learnings and ask questions.
  • Teachers or any fellow students can answer or comment on the posts. Which maximizes the interaction. Also, Students can get their queries resolved as fast as possible with the help of the community.
  • Teachers can put assignment notice or anything they want to convey on the Post.
  • Teachers can delete irrelevant posts in the Forum.
  • Students can also search over Forum to get relevant posts on the basis of Year, Branch & Subject. Which makes it easier for students to find posts related to a particular subject or topic.

Demo

  • Signin Sign In

  • Register Register

  • Homepage Homepage

  • Hub Screenshot (59)

  • Add New File to Hub Screenshot (62)

  • Forum Screenshot (64)

  • Search in Forum Screenshot (65)

  • Add New Post in Forum Screenshot (66)

  • Post Page Screenshot (68)

  • Add Comment on Post Screenshot (73)

  • Approve or DisApprove files uploaded by students Screenshot (63)

  • Log Out Screenshot (69)

  • Page Not Found Screenshot (72)

Deployment

Both Client side and Server side are deployed separately, so that changes in Client side won't affect the Server and vice versa. Both are deployed on heroku platform.

Frontend is deployed here. Backend is deployed here.

Github Project

You can find the project here on Github Project.

Sample Credentials

Teacher: Email: [email protected] Password: abc@1234

Student: Email: [email protected] Password: abc@111