BingEstates
Senior Project I Final Document Summary
We formulated the project's goals and objectives relevant to the software requirements specification document. This project's objective has been determined to respond to the search queries faster than the other real estate websites in the Binghamton area, NY. Meanwhile, simplicity of the website has been considered a must. We also spoke of the statement of scope of the project in the document. It draws attention to the difference between capabilities of a random guest and a registered user. In addition, it articulates what kind of advertisements registered users can place and what the other functionalities of our real estate website are. Following that, we mentioned the Big User Requirements List. It elaborates each requirement's description, reference meaning who is for that specific requirement and its priority. The project's software context is preceded by the Big User Requirements List part in the document. Besides that, the document gives insights on all the user profiles of the system and its data description & objects. We brought the document to an end, by referring to the database design of the system and our GANTT chart indicating our future tasks.
System Architecture of BingEstate
It prefers to utilize a multi-tier architecture to physically separate presentation, application processing, and data management functions among themselves. In this case, this predetermined client-server architecture would be a three-tier application to create a flexible, feasible and reusable system so that likely changes in that would not affect each component’s functionality in a rampant way. If we need to branch those three tiers into details, they would be a presentation tier, domain logic, and a data storage tier. It has attracted our attention that the concept of layer is a logical ‘structured’ mechanism whereas the concept of tier is something physical, concrete infrastructure. In this context, our presentation layer would be front-end web server providing static/dynamic content. For this layer, to be able to design the GUI of the website, Adobe Dream Viewer was determined to utilize our CSS – Cascading Style Sheet, integrating it to ASP.NET in the end – our Logical Tier. Regarding domain logic or logic tier, it would have to make logical calculations, processing commands – dynamic content processing and make transitions between Presentation and Data Tier. After a couple of researches, we decided to use ASP.NET, which is ‘open source’ server-side Web Application Framework, with C# in Microsoft Visual Studio integrated development environment. Finally, Data Tier would be of the essence for managing and providing access to data working as a back-end database of the system. For that part, we all already agreed upon opting Microsoft SQL Server because it would be compatible with ASP.NET by connecting each related piece altogether in Visual Studio.
Senior Project II Project Progress
Week 1 & 2
Installation of each component of the system performed. Those components are Microsoft SQL Server 2008 to formulate our database system for the project, Microsoft Visual Studio 2012 to control the application’s functionality by performing detailed processing and Adobe Dreamweaver to deal with the design
Week 3
Completed the implementation of the system's database and got started on design coding the website's main page and the master page. Graphic elements and text specified in the master page entails being common to each page of the website
Week 4
We continued working on the design of our webpages. Completed the design of master page and default page, that is the main page. Put a slider on the main page embellishing the view of the website and started off creating the webpages pertinent to searching.
Week 5 & 6
Each webpage design specified in the project description document was successfully completed. Some of those webpages could be mentioned as "Membership Info", "Ad View", "My Ads", "Place an Ad", "Search", "Advanced Search" and so on. While trying to complete the design, it was a must that we complied with the requirements in the design document we had created.
Week 7
After completion of coding the first two tiers (Database and Graphical User Interface), we moved on to starting to code the Logic tier acting as an intermediary layer in between the user interface and the database. As we mentioned earlier, users are not allowed to place an ad unless they are a member of BingEstate. So, we must have started coding the sign-up part of the system together with a panel enabling users to be a member of BingEstate on the main page, typing some credentials. They would be able to start harnessing the website accordingly. After having coded this part only, it was also coded that their membership info includes their credentials, editing them and showing their current ads on another section if placed any. Required changes and unit testing made on the signup.aspx.cs and Membership.aspx.cs source files. The followings are examples of the signup, membership info and membership info edit pages respectively.
- SignUp (*)
Week 8
Throughout this week, we dealt with the functionality of placing an ad and putting it into the user's 'My Ads' panel. That's two of the fundamental capabilities of a registered user on BingEstate. Besides that, we coded this part the way that when users place their ads, they would show up on their 'My ads' page. As elaborated before, users are unable to place ads unless they are registered, Required changes and unit testing made on the corresponding Place.aspx.cs (*) source file also to conduct this on the Logic Tier. The following is an example of how to place an ad and accordingly it appears on the user's 'My Ads' panel.
Week 9
In terms of the amount of code written in total, this week was the least important one since it required some slight modifications on the main page and its some sections**. After being done coding the Logic Tier of the default page of BingEstate, the main page started displaying some ads with their images on Image Slider under the name of 'Mainpage Showcase'. The written code also does the operation of displaying a Welcome message to the particular user on the right side of the website after he/she logs in to the system. Apart from that, we were told in the previous meeting that social media buttons of BingEstate such as Facebook and Twitter shall have referred to some search results of real estate agencies in the U.S.. Some changes regarding that made. Some other modifications also made for 'Home', 'About' and 'Contact Us' as well. Required changes and unit testing made on the default.aspx.cs, Master.aspx.cs, About.aspx.cs and Contact.aspx.cs source files. The followings are examples of the main page without login, the main page after login and Contact page on the website.
P.S: Images on the Image Slider are symbolics and not intended to reflect genuine real estates at the moment. Sections saying 'Ad Here' are intended to be replaced with real advertisements if receiving any offer.
The Main Page without Login
The Main Page with Login
Contact Info
Week 10
Following ads placed into BingEstate by its registered users, they were required to be viewed. For this reason, The Adview.aspx.cs page created to be able to display already placed ads and listings. By this means, anyone on the website can show details of any particular ad in a very clear way since no membership is required to view them. Ads info consists of a bunch of fields such as Category, Status, Price, Year Built etc. Unit testing on the source file in question made to make sure that it works just fine. The following is an example of how an ad can be displayed in a clear way.
Week of Spring Break
Even though it was not included in the Gantt Chart, we decided to complete more project requirements by working over time. Ads could be viewed and displayed, but there was no sort of search capabilities of BingEstate. Hence, it was necessary for us to create another aspx.cs named SearchResult capable of doing basic search operations. While doing so, the search engine makes the basic search depending on a keyword it receives from the search box. After the search engine gets an input value, SearchResult.aspx.cs identifies items that match the characters and keywords entered by a user. Then, it makes a connection to the database and returns related results back to another webpage under the name of basic search results. For example, ** Searching can be conducted by anyone on BingEstate without any membership. Required operations concerning the unit testing of SearchResult.aspx.cs made as well.
Week 11
Final operation we completed on the Logic Tier of BingEstate was to enable the system to make advanced searches as well. On the interface (GUI) coding phase, we had already created some boxes representing what sort of estates (Residential, Commercial or Land) could have been searched in an advanced way. After that, we had to return related results via the advance.aspx.cs source file. It also returns ads complying with desired advanced search criterions by members, non-members such as 'For Sale', 'Residential', 'Room', 'Bathroom', 'Price Range' back to the same webpage. Required unit testing also made on the advance.aspx.cs source file. The following is an example of advanced search indicating that there is only one ad having two rooms, one bathroom, being worth in between 1.00-100.000 US Dollars, built in 1990, in Vestal for sale.
ER Diagrams and Database of BingEstate
To comprehend what the system does, taking a look at Entity-Relationship Diagrams could be indispensable. Besides that, we came across a great saying while doing research regarding the importance of ER diagrams before designing the bedrock of BingEstate, the database. It reminded us to think about it outside of the box. It is as follows: “Plain and simple, think of developing a database without an ERD as building a house without a building plan. It might be doable because you think that simply laying a brick one over another is enough to build something, however the moment somebody else takes responsibility over the project there is disaster potential.”
Entity-Relationship Diagrams
In the first diagram below, each entity together with its attributes is specified. Speaking of the other diagrams, some relations of each entity with their attributes are denoted in a specific way, by stating their types such as many-to-many, many-to-one, one-to-one etc. We had come up with 5 Entity-Relationship Diagrams, which are formulated and considered solely in groups of two. Notwithstanding this fact, there might’ve been some others getting integrated into the document among themselves in groups of 3 or more. However, that could lead to some redundancy in here while comprehending the bigger picture.
Database
After coming up with ER Diagrams, we formulated our database being in an attempt to be taking 3rd normalization form rules into consideration in order to insure the data consistency. There are 7 entities and more than 30 attributes in total including foreign and primary keys. While creating the database, foreign keys meaning “is a column or group of columns in a relational database table that provides a link between data in two tables. It acts as a cross-reference between tables because it references the primary key of another table, thereby establishing a link between them.” are required. Accordingly, it leads some other tables to be formed in the database itself. All the foreign keys of the database are UserId, StatusId, CategoryId, AddressId, ImageId, ZipCodeId. The following is the database of BingEstate that we worked on and processed listings and ads into. For any details regarding what they are or some other explanations, please refer to the Appendix.
Appendix
Appendix is created to address some attributes located in the system database. Some of them are as follows in conjunction with details.
Category: Residential, Commercial, Land
Status: For Sale, For Rent, Not Anymore (Not Anymore option is to show people who are already aware of a particular ad that the ad is no longer available)
Other Info: It is concerning the fact that there might be some other information users would like to add into their ads, such as neighborhood of that particular region, extra utilities of that estate, property etc.
Date: Date on which ad is placed
Year Built: When that property’s construction is completed
Images: 5 different images of a particular estate represented in another table
UserId: It is referring to User table, as a foreign key residing in Advertisement table, since there could be more than one ad belonging to the same user, whereas otherwise is not.
Team Members
Team Members from left to right: Ozan Goylusun, Mehmet Tumer
















