Разработка web-сайта агенства по продаже недвижимости

Современные технологии, используемые для создания web-сайтов. Программное обеспечение, необходимое для создания сайта: утилиты, текстовые и графические редакторы. Создание дизайна web-сайта по продажа недвижимости. Служебная информация web-страницы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 23.04.2024
Размер файла 7,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

} catch (error) {

return res.status(500).json(error)

}

})

// fetch my properties

propertyController.get('/find/my-properties', verifyToken, async (req, res) => {

try {

const properties = await Property.find({ currentOwner: req.user.id })

return res.status(200).json(properties)

} catch (error) {

console.error(error)

}

})

// fetch bookmarked yachts

propertyController.get('/find/bookmarked-properties', verifyToken, async (req, res) => {

try {

const properties = await Property.find({ bookmarkedUsers: { $in: [req.user.id] } })

return res.status(200).json(properties)

} catch (error) {

console.error(error)

}

})

// TODO FETCH INDIVIDUAL PROPERTY

propertyController.get('/find/:id', async (req, res) => {

try {

const property = await Property.findById(req.params.id).populate('currentOwner', '-password')

if (!property) {

throw new Error('No such property with that id')

} else {

return res.status(200).json(property)

}

} catch (error) {

return res.status(500).json(error)

}

})

// create estate

propertyController.post('/', verifyToken, async (req, res) => {

try {

const newProperty = await Property.create({ ...req.body, currentOwner: req.user.id })

return res.status(201).json(newProperty)

} catch (error) {

return res.status(500).json(error)

}

})

// update estate

propertyController.put('/:id', verifyToken, async (req, res) => {

try {

const property = await Property.findById(req.params.id)

if (property.currentOwner.toString() !== req.user.id) {

throw new Error("You are not allowed to update other people's properties")

}

const updatedProperty = await Property.findByIdAndUpdate(

req.params.id,

{ $set: req.body },

{ new: true }

)

return res.status(200).json(updatedProperty)

} catch (error) {

return res.status(500).json(error)

}

})

// bookmark/unbookmark estate

propertyController.put('/bookmark/:id', verifyToken, async (req, res) => {

try {

let property = await Property.findById(req.params.id)

if (property.currentOwner.toString() === req.user.id) {

throw new Error("You are not allowed to bookmark your project")

}

if (property.bookmarkedUsers.includes(req.user.id)) {

property.bookmarkedUsers = property.bookmarkedUsers.filter(id => id !== req.user.id)

await property.save()

} else {

property.bookmarkedUsers.push(req.user.id)

await property.save()

}

return res.status(200).json(property)

} catch (error) {

return res.status(500).json(error)

}

})

// delete estate

propertyController.delete('/:id', verifyToken, async (req, res) => {

try {

const property = await Property.findById(req.params.id)

if (property.currentOwner.toString() !== req.user.id) {

throw new Error("You are not allowed to delete other people properties")

}

await property.delete()

return res.status(200).json({ msg: "Successfully deleted property" })

} catch (error) {

return res.status(500).json(error)

}

})

module.exports = propertyController

UploadController.js

const multer = require("multer");

const uploadController = require("express").Router();

const storage = multer.diskStorage({

destination: (req, file, cb) => {

cb(null, "public/images");

},

filename: (req, file, cb) => {

cb(null, req.body.filename);

},

});

const upload = multer({

storage: storage,

});

uploadController.post("/image", upload.single("image"), async (req, res) => {

try {

return res.status(200).json("File uploded successfully");

} catch (error) {

console.error(error);

}

});

module.exports = uploadController

UserController.js

const userController = require('express').Router()

const User = require('../models/User')

const bcrypt = require('bcrypt')

const verifyToken = require('../middlewares/verifyToken')

userController.get('/find/:id', async (req, res) => {

try {

const user = await User.findById(req.params.id).select('-password')

if (!user) throw new Error("No such user")

return res.status(200).json(user)

} catch (error) {

return res.status(500).json(error.message)

}

})

userController.put('/:id', verifyToken, async (req, res) => {

console.log(req.body)

if (req.params.id === req.user.id.toString()) {

try {

if (req.body.password) {

const newPassword = await bcrypt.hash(req.body.password, 10)

req.body.password = newPassword

}

const updatedUser = await User.findByIdAndUpdate(req.params.id, { $set: req.body }, { new: true })

return res.status(200).json(updatedUser)

} catch (error) {

return res.status(500).json(error.message)

}

} else {

return res.status(403).json({ msg: 'You can update only your profile' })

}

})

userController.delete('/:id', verifyToken, async(req, res) => {

const user = await User.findById(req.params.id)

if(!user) {

return res.status(500).json({ msg: 'No such user' })

}

if(req.user.id.toString() === user._id.toString()) {

try {

await User.findByIdAndDelete(req.params.id)

return res.status(200).json({ msg: 'Successfully deleted' })

} catch (error) {

return res.status(500).json(error.message)

}

} else {

return res.status(403).json({ msg: 'You can delete only your profile' })

}

}

)

module.exports = userController

YachContoller.js

const verifyToken = require('../middlewares/verifyToken')

const Yacht = require('../models/Yacht')

const User = require('../models/User')

const yachtController = require('express').Router()

// get all

yachtController.get('/getAll', async (req, res) => {

try {

const yachts = await Yacht.find({})

return res.status(200).json(yachts)

} catch (error) {

console.error(error)

}

})

/ fetch my yachts

yachtController.get('/find/my-yachts', verifyToken, async (req, res) => {

try {

const yachts = await Yacht.find({ currentOwner: req.user.id })

return res.status(200).json(yachts)

} catch (error) {

console.error(error)

}

})

// fetch bookmarked yachts

yachtController.get('/find/bookmarked-yachts', verifyToken, async (req, res) => {

try {

const yachts = await Yacht.find({ bookmarkedUsers: { $in: [req.user.id] } })

return res.status(200).json(yachts)

} catch (error) {

console.error(error)

}

})

// get one

yachtController.get('/find/:id', async (req, res) => {

try {

const yacht = await Yacht.findById(req.params.id).populate('currentOwner', '-password')

if (!yacht) {

throw new Error('No such yacht with that id')

} else {

return res.status(200).json(yacht)

}

} catch (error) {

return res.status(500).json(error)

}

})

// create yacht

yachtController.post('/', verifyToken, async (req, res) => {

try {

const newYacht = await Yacht.create({ ...req.body, currentOwner: req.user.id })

return res.status(201).json(newYacht)

} catch (error) {

return res.status(500).json(error)

}

})

// update estate

yachtController.put('/:id', verifyToken, async (req, res) => {

try {

const yacht = await Yacht.findById(req.params.id)

if (yacht.currentOwner.toString() !== req.user.id) {

throw new Error("You are not allowed to update other people's yachts")

}

const updatedYacht = await Yacht.findByIdAndUpdate(

req.params.id,

{ $set: req.body },

{ new: true }

)

return res.status(200).json(updatedYacht)

} catch (error) {

return res.status(500).json(error)

}

})

// bookmark/unbookmark estate

yachtController.put('/bookmark/:id', verifyToken, async (req, res) => {

try {

let yacht = await Yacht.findById(req.params.id)

if (yacht.currentOwner.toString() === req.user.id) {

throw new Error("You are not allowed to bookmark your project")

}

if (yacht.bookmarkedUsers.includes(req.user.id)) {

yacht.bookmarkedUsers = yacht.bookmarkedUsers.filter(id => id !== req.user.id)

await yacht.save()

} else {

yacht.bookmarkedUsers.push(req.user.id)

await yacht.save()

}

return res.status(200).json(yacht)

} catch (error) {

return res.status(500).json(error)

}

})

// delete estate

yachtController.delete('/:id', verifyToken, async (req, res) => {

try {

const yacht = await Yacht.findById(req.params.id)

if (yacht.currentOwner.toString() !== req.user.id) {

throw new Error("You are not allowed to delete other people properties")

}

await yacht.delete()

return res.status(200).json({ msg: "Successfully deleted yacht" })

} catch (error) {

return res.status(500).json(error)

}

})

module.exports = yachtController

VerifyToken.js

const jwt = require("jsonwebtoken")

const verifyToken = async(req, res, next) => {

if(!req.headers.authorization) return res.status(403).json({msg: 'Not authorized. No token'})

if(req.headers.authorization&&req.headers.authorization.startsWith("Bearer ")){

const token = req.headers.authorization.split(' ')[1]

jwt.verify(token, "secret322", (err, data) => {

if(err) return res.status(403).json({msg: 'Wrong or expired token'})

else {

req.user = data // data = {id: user._id}

next()

}

})

}

}

module.exports = verifyToken

Comment.js

const mongoose = require("mongoose")

const CommentSchema = new mongoose.Schema({

listing: {

type: String,

required: true,

},

author: {

type: mongoose.Types.ObjectId,

ref: 'User',

required: true,

},

text: {

type: String,

required: true

}

}, { timestamps: true })

module.exports = mongoose.model("Comment", CommentSchema)

Property.js

const mongoose = require("mongoose")

const PropertySchema = new mongoose.Schema({

currentOwner: {

type: mongoose.Types.ObjectId,

ref: "User",

required: true

},

title: {

type: String,

required: true,

min: 6,

},

type: {

type: String,

enum: ["beach", "mountain", "village"],

required: true

},

desc: {

type: String,

required: true,

min: 50,

},

img: {

type: String,

required: true

},

price: {

type: Number,

required: true

},

sqmeters: {

type: Number,

required: true,

min: 15

},

continent: {

type: String,

required: true

},

beds: {

type: Number,

required: true,

min: 1

},

bookmarkedUsers: {

type: [String],

default: []

}

}, {timestamps: true})

module.exports = mongoose.model("Property", PropertySchema)

User.js

const mongoose = require("mongoose")

const UserSchema = new mongoose.Schema({

username: {

type: String,

required: true,

unique: true,

},

email: {

type: String,

required: true,

unique: true,

},

password: {

type: String,

required: true,

min: 6,

},

profileImg:{

type: String,

required: true

}

}, {timestamps: true})

module.exports = mongoose.model("User", UserSchema)

Yach.js

const mongoose = require("mongoose")

const YachtSchema = new mongoose.Schema({

currentOwner: {

type: mongoose.Types.ObjectId,

ref: "User",

required: true

},

title: {

type: String,

required: true,

min: 6,

},

desc: {

type: String,

required: true,

min: 12,

},

img: {

Заключение

В заключение можно подчеркнуть следующие основные моменты:

Данное исследование было направлено на разработку и создание эффективного сайта для продажи недвижимости. В ходе работы были проведены обширные исследования, анализ существующих решений на рынке и определение требований пользователей. Основная цель заключалась в создании удобного и привлекательного интерфейса, который позволит пользователям легко находить и приобретать жилую или коммерческую недвижимость.Результаты данного исследования позволяют сделать следующие выводы. Во-первых, создание сайта для продажи недвижимости является важным шагом в развитии современного рынка недвижимости. Он предоставляет потенциальным покупателям удобный инструмент для поиска и приобретения желаемого объекта недвижимости.

Во-вторых, разработка сайта требует учета потребностей и предпочтений пользователей. Это означает, что необходимо обеспечить простоту и интуитивно понятный интерфейс, информативные и детальные описания объектов недвижимости, а также возможность легко связаться с продавцами или агентами. Все эти факторы существенно повышают вероятность успешной сделки и удовлетворенность клиентов.

В-третьих, создание сайта для продажи недвижимости открывает новые возможности для риэлторских компаний и частных продавцов. Он позволяет им эффективно рекламировать и продвигать свою недвижимость, привлекать больше потенциальных покупателей и увеличивать объемы продаж. Более того, сайт может стать важным инструментом для управления и анализа продаж, обеспечивая дополнительные преимущества для владельцев и агентов. Исходя из вышесказанного, можно сделать вывод, что создание сайта для продажи недвижимости имеет значительный потенциал для развития рынка недвижимости в целом. Это предоставляет возможность удовлетворения потребностей покупателей и продавцов, упрощает процесс поиска и приобретения

Список литературы

1. Гарри М., Моррис Д., Маккей Дж. Проектирование пользовательских интерфейсов.СПб.:Питер,2019.

2. Купер А., Рейман Р., Кронин Д. Ценность проектирования. М.: ДМКПресс, 2018.

3. www.HTML sourse

4. www.CODECONVEY

5. www.wiki js

6. www.stackoverflow

7. www.codeproject

8. Jave Concurrency in Practice (2006) Brian Goetz

9. Алгоритмы. Справочник с примерами на C, C++, Java и Python Джордж Хайнеман, Гэри Поллис, Стэнли Селков

10. JAVA EE паттерны проектирования для профессионалов Мурат Иенер, Алекс Фидом

Размещено на Allbest.ru

...

Подобные документы

  • История появления первого в мире сайта info.cern.ch в 1991 году. Страницы сайтов как набор текстовых файлов, размеченных на языке HTML. Использование конструктора при разработке сайтов. Создание сайта "с нуля", разработка дизайна, верстка, оформление.

    реферат [21,5 K], добавлен 26.05.2015

  • Выбор инструментальных и программных средств для создания сайта. Структура программного продукта. Создание сайта при помощи программы WordPress. Тестирование разработанной программы. Разработка структуры и дизайна сайта. Наполнение сайта контентом.

    курсовая работа [1,0 M], добавлен 09.01.2014

  • Корпоративное представительство как информация для посетителей и рабочий инструмент для сотрудников фирмы. Типы структур сайтов. Анализ существующих моделей создания сайта. Дизайн и функциональность сайта. Оптимизация кода. Процесс создания сайта.

    курсовая работа [189,9 K], добавлен 12.03.2009

  • Основы моделирования и разработки Web-сайтов. Обзор и сравнительный анализ языков программирования. Фреймворки, используемые при создании сайта. Разработка графического дизайна, моделирование и создание Web-сайта, руководство по администрированию.

    курсовая работа [1,7 M], добавлен 07.11.2013

  • Этапы развития веб-дизайна. Виды и типы веб-сайтов, теоретические аспекты их создания. Структура веб-сайта и его страниц. Процесс и результат разработки веб-дизайна. Создание сайта факультета архитектуры и дизайна Кубанского государственного университета.

    дипломная работа [4,6 M], добавлен 10.11.2015

  • Обзор проблемы разработки сайтов. Системы управления контентом. Сайты для агентств недвижимости. Контекстная диаграмма и оценка трудоемкости разработки сайта. Анализ предметной области и выделение информационных объектов. Описание реализации сайта.

    дипломная работа [2,9 M], добавлен 12.08.2017

  • Понятие web-сайта и их типы. Программы для создания web-сайта. Описание структуры проекта. Алгоритм создания сайта. Описание конструктора Jimdo. Языки программирования серверного выполнения. Создание полнофункционального веб-сайта для ОАО "КУЛЗ".

    курсовая работа [3,5 M], добавлен 05.06.2015

  • Основные этапы создания web-сайтов; информационное, программное и техническое обеспечение. Разработка сайта компании "Империя Востока": задачи, структура, выбор концепции дизайна сайта, организация навигации, создание базы данных, формы обратной связи.

    дипломная работа [3,9 M], добавлен 12.12.2013

  • Анализ сетевых технологий в гостиничном деле. Официальные сайты компаний. Технологии при создании и поддержке сайтов. Разработка модели web-ресурса, шаблона, тестового примера. Основные этапы создания веб-сайта и презентации. Цены на разработку сайта.

    курсовая работа [3,6 M], добавлен 30.03.2014

  • Работа с HTML-редактором Adobe Dreamweaver. Этапы и правила построения заглавной страницы сайта, форматирования HTML-страниц, создания гипертекстовых ссылок, создания и форматирования таблиц. Использование графических материалов при разработке сайта.

    методичка [1,9 M], добавлен 06.07.2011

  • Рассмотрение основных этапов создания сайта. Использование вайрфреймов как документации по проекту. Использование мокапа и структура навигации сайта. Правильный выбор цветов для проекта. Использование модульной сетки и разработка дизайна сайта.

    презентация [2,8 M], добавлен 01.09.2019

  • Системы управления контентом. Проектирование сайта агентства недвижимости. Информационное обеспечение системы. Построение логической модели данных. Разработка интерфейса сайта: программные средства, структура сценария, его компьютерная реализация.

    дипломная работа [2,4 M], добавлен 27.10.2017

  • Технические характеристики компьютерных систем. Анализ интернет-сайта филиала предприятия и выявление основных проблем. Обновление структуры и подгонка сайта под современные стандарты с помощью программы WebSite X5. Создание дизайна веб-страницы.

    отчет по практике [410,2 K], добавлен 14.01.2015

  • Разработка сайта в приложении FrontPage. Программные средства и технологии, используемые при разработке сайта. Основная структура сайта и размещение исходных файлов. Создание графических страниц, элементов и рисунков. Размещение сайта в сети Internet.

    курсовая работа [1,6 M], добавлен 13.06.2013

  • Методы создания сайта; выбор и сравнение программных платформ. Разработка структуры и дизайна сайта. Установка Joomla!, настройка расширений и выбор хостинга. Аппаратно-программные способы и средства обеспечения информационной безопасности веб-сайта.

    дипломная работа [3,6 M], добавлен 08.04.2014

  • Изучение роли информационно-коммуникационных технологий в гостиничного индустрии. Виртуальные представительства реальных отелей в сети Интернет. Основные виды презентаций и сайтов, технологии и этапы их создания. Бриф на создание сайта и его элементов.

    курсовая работа [7,3 M], добавлен 10.12.2013

  • Методы и технологии создания виртуальных магазинов. Программные средства для создания сайта. Разработка php-модуля. Технические возможности СУБД MySQL. Приложения для создания графики и дизайна. Логическая структура сайта. Разработка базы данных.

    курсовая работа [248,1 K], добавлен 24.04.2012

  • Актуальность создания фирменного web-сайта. Разработка, внедрение web-сайта под названием "Удачная постройка". Анализ существующих программных решений, выбор инструментальных средств разработки. Архитектура сайта, структура данных. Тестирование и отладка.

    дипломная работа [4,7 M], добавлен 19.01.2017

  • Подходы к созданию сайтов. Обоснование необходимости наличия персонального сайта компании ИП Тимонина Е.Н.. Структура, интерфейс, этапы создания сайта. Описание кода страниц. Создание web-страниц и наполнение их информацией. Верстка сайтов с чистым кодом.

    дипломная работа [1,5 M], добавлен 03.06.2015

  • История веб-дизайна и сайтов. Пример раннего сайта Angelfire. Популярные браузеры, цветовая модель RGB. Структура корпоративного сайта. Предпроектный анализ разрабатываемого веб-сайта. Основные блоки макета. Пример адаптивной верстки. Макет в Photoshop.

    дипломная работа [8,0 M], добавлен 10.10.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.