Professional Documents
Culture Documents
ON
Kch-bhi.com(blogging site)
(SESSION:2019-2023)
We would like to thank Mr. Amandeep Chhabra Sir for his invaluable
support and guidance and also for constantly encouraging and compelling
me towards the right track. We would also like to thank other lab staff of
for setting up a perfect working environment for the project and providing
us with all the needed guidance.
-Vanshika Khanna
(251902065)
-Deepali Verma
(251902082)
-Himanshi
(251902083)
This is blogging site. The main aim of this project is to developwebsite for
user who wants to publish their thoughts. This project will be developed to
carry out the processes of blogging easily and quickly. This project will
develop an environment in which users are free to express their thoughts and
views on topics of their choice.
Due to rapid growth of technology, users are switched over from the
traditional method for getting daily news from newspapers or magazines to
reading blogs on the internet , so blogging sites plays a vital role in todays
world .
Advantages:
• Provides appropriate information for our queries.
• Different blogs are available for a certain problem.
• Provides quick access and is affordable.
• The system saves time.
TECHNOLOGY USED
Software Requirements:
• Windows 10
• Visual studio
Hardware Requirements:
• Processor – i5
• Hard Disk – 16 GB
• Memory – 4GB RAM
Languages:
• HTML
• CSS
• Bootstrap
• Java script
• React.js
• Node.js
Library Used:
• Material UI
• Styled-component
• react-router
• Redux
FUTURE PLANS
• Admin login: Admin is the one who administers thesystem and input
updates.
• User login: Users have to create an account into thesystem by registering
themselves. Then they may login into the system and can upload their
blogs.
• Embedding: YouTube, github, Tweets, Instagram photos are all
embeddable in this project.
• Tags: For each story you publish, you can select up to3 tags. Tags will help
an interested audience discoveryour story, and improve search result
rankings within Medium.
• Notes: Leave notes on your own story to clarify apoint.
PSEUDO CODE
Client
App.jsx:
import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import Loadable
from 'react-loadable';
// import global styles here to apply them before any other styles import
'./assets/styles/index.scss';
loading: Spinner,
});
</ContextWrapper>
);
Login.jsx:
this.setState({
[e.target.name]: e.target.value,
});
}
handleSubmit = (e) => { e.preventDefault();
}
});
}
render() {
const errorBox = (
<div className={styles.error}>
{this.state.error}
</div>
);
return (
<MarkupWrapper>
<form onSubmit={this.handleSubmit}>
<input type="text" value={this.state.username} onChange={this.handleInputChange}
name="username" placeholder="Username" required />
<input type="password" value={this.state.password} onChange={this.handleInputChange}
name="password" placeholder="Password" required />
<div className={styles['button-box']}>
<button className="btn btn--inverted">Sign in</button>
</div>
{this.state.error && errorBox}
</form>
</MarkupWrapper>
);
}
}
LoginScreen.propTypes = {
history: PropTypes.object.isRequired,
context: contextShape.isRequired,
};
RegisterScreen.jsx:
import React from 'react';
import PropTypes from 'prop-types'; import axios from 'axios';
import queryString from 'query-string';
this.setState({
[e.target.name]: e.target.value,
});
}
window.alert(error);
}
});
}
render() {
const errorBox = (
<div className={styles.error}>
{this.state.error}
</div>
);
return (
<MarkupWrapper>
<form onSubmit={this.handleSubmit}>
<input type="text" value={this.state.username} onChange={this.handleInputChange}
name="username" placeholder="Username" required />
<
={styles['button-box']}>
<button className="btn btn--inverted">Sign up</button>
</div>
{this.stateinput type="password" value={this.state.password}
onChange={this.handleInputChange} name="password" placeholder="Password" required />
<input type="password" value={this.state.confirmPassword}
onChange={this.handleInputChange} name="confirmPassword" placeholder="Confirm
Password" required />
<div className.error && errorBox}
</form>
</MarkupWrapper>
);
}
}
RegisterScreen.propTypes = {
history: PropTypes.object.isRequired, context: contextShape.isRequired,
};
return (
<main>
const revokedToken = db
.get('revokedTokens')
.find({ token })
.value();
if (revokedToken) {
res.status(400).json({ error: 'Auth token is revoked.' }); return;
}
try {
const payload = jwt.verify(token, config.jwtSecret); res.user = { ...payload };
next();
} catch (e) { console.log(e);
res.status(400).json({ error: 'Auth token verification failed.' });
}
};
module.exports = authorize;
SNAPSHOTS
Home screen:
Sign in screen:
Conclusion:
It has been a great pleasure for me to work on this exciting and challenging
project. This project proved good for me as it provided practical knowledge of not
only programming in node js and html, css, javascript and react js web based
application and to some extent databases, but also about all handling procedure
related with “Blogging Website”. It also provides knowledge about the latest
technology used in developing web enabled application that will be great demand
in future.This will provide better opportunities and guidance in future in
developing projects independently.
Benefits:
The project is identified by the merits of the system offered to the user. The merits
of this project are as follows: -
Limitations:
The size of the database increases day-by-day, increasing the load on the
database back up and data maintenance activity.
Training for simple computer operations is necessary for the users
working on the system.