Summer Internship-House/Flat Rental Management System (Website)
My summer internship, I was given a task to make a full stack website for house rental management system so first of all I named as Happy Home and selected few technology for front end development & few for back end development which are most suitable. Firstly let’s clear few terminology.
What Is Website ?
A website is a collection of web pages and related content that is identified by a common domain name and published on at least one web server.
What Is Front End Technology ?
What we see and interact with as the visitors of a website, or as the end user of a any application, is considered front end technology. It’s code for better user friendly experience and enhanced web application.
What Is Back End Technology ?
What the end user can’t see and which handle the ‘behind-the-scenes’ functionality of web applications. It’s code that connects the web to a database, manages user connections, and powers the web application.
What Is The Purpose ?
Which Technology Is Used ?
Front End Technology/Language — Hypertext Markup Language(add structure), Cascading Style Sheets(add styling), Java Scripts(makes interactive).
Back End Technology/Language — NodeJs(used for routing), Express(framework for node), MongoDB(used for database), Mongoose(framework for mongodb).
Other Technology/Module — BodyParser(for extract data from request), Ejs(template engine), Multer(for file uploader), Passport.js(for authentication), Socket.io(for communication), Stripe.js(for payment method), Twilio(for sending message).
First of any website there must be proper authentication system and I have done this we the help of passport.js and mongoose to store the data of user. Passport.js uses 5th level of security for storing password of the user with the help of hash and salt. In general I have added two pages one for new user as register and other for old user as login or sign in.
Structure & Design
In general for structure purpose html is used and for styling purpose css is used. Mostly all pages are design for good user friendly experience and also keeping in mind for having proper design for more interactive look. Also I have added good structure in every pages so that every feature can be easily route.
Routing & Middleware
As to make fully functional website for storing and retrieval of data the routing and middlewares are most important. This whole is achieved with the help of express.js. Also for the extracting data from the pages the body parser is used and further that data is processed. All checking and verification is also performed under this section as data is present or any unfilled entry is present and according to that further route can be decided.
Lastly main section is the database which is used to store user activity like upload listing, sold listing and also database are used to retrieve data like which listing is post for sold or for lease and many other. I have made this possible with the help of mongoose we can say a middle ware of mongodb.
As for developing state I was using local server and local database. After completing all features of website it’s time to deploy the application globally and to host it. This can be possible with the help of heroku a free web developing service. Now all the requests are handled by heroku as I have deployed to it over servers which are running for 24/7. At last I have deploy my database to mongodb atlas and It’s a free database provider for 500 MB per cluster.
In this feature any user can sale or lease their property according to there property type like apartment or flat or any other. Also there few other formalities present in listing section so at the time of listing the property all specification of property must be filled so that proper buyer can be there for your property. Specification mentions are property type, property details, property value, property images and many other specification for better reach.
In this feature any user can buy or rent there dream house from other user. But this is not direct process like just buying online stuff. First of all you need to search according to need means area, city and other specification. Then find appropriate listing according to features or any other expenses. Then by adding the room id or room number of yours choice in further section. So this room id or room number will be delivered to listing holder for further contact in chat section.
There must some sort of subscription plan in all application from which the website can make profit. Here I have added payment gateway by stripe.js. Further there must be some sort of advantage or premium features must be given to vip users. So I have added feature listing which are going to display in home page and also this account holder can post as any of listing they can post on happy home. Atlast this user can get all other user details like contact details. So that they can contact directly through any other medium and increased the processed speed.
This feature is used by users which want to communicate to listing holder. First step is to find appropriate listing and then with the help of further section we can send room id or room number with the help of twilio. This room id or room number is sent to listing holder and then any of user can make room through this id or number in chat section and other can be join that room for communication. Further there must be a chat section in which both user can send message to each other. This can be possible with the help of socket.io and java script.
Every web application must contain dashboard section or profile section from which every data of user can be updated or edited. Here in my website I have added dashboard feature from which all listing can be edited or deleted. Also the listing can be set to bought so that it cannot be seen in buy section from now. After deleting the listing from dashboard it completely remove the listing form the website it cannot be resolve or recover. Only way to recover is to re upload it.
Corona Virus Tracker
Last but not list is the corona virus tracker that tracker the corona cases in every country by searching any country we can get stats and this can be possible with the help of api. This section is not related to project part but to use the concept of api I have included in it. In this section you will find the total, recovered, critical and death numbers regarding this covid pandemic.