Разработка 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