Skip to content
This repository was archived by the owner on May 13, 2025. It is now read-only.

JingRonggg/HomeGoWhere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lab 1 Deliverables

Deliverables

• Documentation of functional and non-functional requirements
• Data dictionary
• Initial Use Case Model, consisting of Use Case diagram and Use Case descriptions
• UI Mockups

Files

The Lab 1 Deliverables.pdf contains all the required lab 1 deliverables.

The Use Case Diagram.png is included for reference in case the use case diagram in the pdf file is too small.


Lab 2 Deliverables

Deliverables

• Complete Use Case diagram
• Use Case descriptions
• Class diagram of entity classes
• Key boundary classes and control classes
• Sequence diagrams of some use cases
• Initial Dialog map

Files

The Lab 2 Deliverables.pdf contains all the required lab 2 deliverables.

The Lab2_Diagrams.pdf is included for reference in case the diagrams in the pdf file is too small.


Lab 3 Deliverables

Deliverables

* Complete Use Case model
* Design Model
    * Class diagram
    * Sequence diagrams
    * Dialog map
* System architecture
* Application skeleton

Files

The Lab 3 Deliverables.pdf contains all the required lab 3 deliverables.


Lab 4 Deliverables

Deliverables

* Working application prototype
* Source code
* Test Cases and Testing Results
* Demo script

Lab 5 Deliverables

Deliverables

* Documentation such as SRS
* Video link 

HomeGoWhere Demo Video

SC2006 SDAD Group 6 Project


Table of Contents



  • This application serves the purpose of helping Owners to rent houses and Tenants to find rooms to rent.

  1. In the /frontend directory, install the required node modules.
npm install
  1. Start the application
npm run start

Now you are ready to start using the HomeGoWhere frontend! The frontend application is running on http://localhost:TBC

  1. cd into /HomeGoWhere
cd .\HomeGoWhere\
  1. run backend
mvn spring-boot:run

Now you are ready to start using the HomeGoWhere Application backend. The server application is running on http://TBC.

  1. Done using postgresql, with relational database.
UserID Name Email Contact Photo Password (Hashed)
27 Peter Parker peter.parker123@gmail.com 88888883 NULL $2a$10$J4zzLG8OLo.f87Cw5oiGEeQ9TIi6zC4gkU3FI3Y6nUknuNGu7kI9a
28 Tony Stark tony.stark999@gmail.com 88888884 NULL $2a$10$9vErzEkUj/fbBE/8WPtzwO4UdMRKVeN87kEDdQ4O.uoTwMjUmd9QK
29 Bruce Banner bruce.banner101@gmail.com 88888885 NULL $2a$10$/WfMrfSj.IBP5lC1jSJ1gegyuFilLGQyN.s.HfVMiYU51wQJzD/CK
30 Diana Prince diana.prince88@gmail.com 88888886 NULL $2a$10$Q1Xld6glaQqPTIgSoxfBhOmTkK2hcsZeZjGtGHu/FCKMQe4zSz5De
31 Barry Allen barry.allen33@gmail.com 88888887 NULL $2a$10$4gxTBRZWEKVV9vXVovZGl.xLHtRjBYPh8Ctfoojh/5OGiIG7WcY3W
32 Clark Kent clark.kent456@gmail.com 88888888 NULL $2a$10$4sfzFEeDAOyNkbsh5KUhmum3.fZMgQBpZ4ThzxHIt2/6PHSpl2zsq

HomeGoWhere backend application uses Spring-Boot.

This is an example of one of the many API end points we have img.png

Our api documentation is in http://localhost:8080/swagger-ui/index.html#/ after running backend



img.png


The HomeGoWhere project is a mobile application built with React Native and Expo for the frontend and utilizes Axios for making HTTP requests to the backend API. This document provides an overview of the folder structure and the purpose of each key file and directory.

HomeGoWhere

  • Main project directory where all the application code and dependencies are located.

.expo

  • Contains configuration files specific to the Expo environment. These files are generally managed by Expo and handle settings for running the app on different devices, enabling hot reloading, and other Expo-specific features.

app

  • Primary source folder for the application's components and screens.
  • Stores main UI components and core logic that make up the app.

assets

  • Holds static resources such as images, fonts, icons, and other media files used throughout the app.

components

  • Contains reusable React Native components that are shared across various screens and features within the app.
  • Encourages modularity by allowing different parts of the app to utilize these components without duplicating code.

node_modules

  • Stores all installed dependencies for the project. When npm install or yarn install is run, all required libraries, including React Native, Expo, Axios, and others, are saved here.
  • Note: This folder should not be modified directly, as it is managed by the package manager.

Key Files

.gitignore

  • Specifies which files and directories Git should ignore when committing changes to the repository.
  • Includes entries such as node_modules, logs, and build artifacts that are not necessary to track in version control.

app.json

  • Core configuration file for the Expo app.
  • Defines settings like the app name, version, icon, splash screen, and other metadata. Expo uses this file to understand how to package and serve the app.

babel.config.js

  • Configuration file for Babel, a JavaScript compiler that enables the use of modern JavaScript features.
  • Transforms the code to ensure compatibility with the various environments in which the app may run.

expo-env.d.ts

  • TypeScript declaration file for Expo.
  • Provides typings for Expo-specific modules and custom environment variables used within the app, enhancing type safety and code completion.

package.json

  • Lists the project's dependencies and scripts.
  • Stores metadata about the project, such as its name, version, and a list of npm/yarn dependencies, including React Native, Expo, and Axios.
  • Contains scripts for running, building, and testing the application, e.g., npm start to run the app in development mode.

package-lock.json

  • Automatically generated file that locks the versions of all dependencies used in the project.
  • Ensures consistent installation of the exact same dependency versions on different devices or environments.

tsconfig.json

  • TypeScript configuration file that defines compiler options, such as the target version of JavaScript, module system, and directory paths.
  • Ensures TypeScript checks and compiles code according to the project's specific requirements, improving type safety and error checking.

\HomeGoWhere\src\main\java\HomeGoWhere

  • Contains all the folders for the backend

\HomeGoWhere\src\main\java\HomeGoWhere\service

  • Contains methods to create, read, update, and delete business objects.

\HomeGoWhere\src\main\java\HomeGoWhere\model

  • Contains the Business Objects.

\HomeGoWhere\src\main\java\HomeGoWhere\controller

  • Controllers that uses the various services implemented in the \service directory.

\HomeGoWhere\src\main\java\HomeGoWhere\dto

  • contains all the Data Transferable Objects

\HomeGoWhere\src\main\java\HomeGoWhere\repository

  • Contains all the interface of the service for service to implement
  • Contains all the specific queries for the database that is not provided by Spring-boot

\HomeGoWhere\src\main\java\HomeGoWhere\security

  • Contains all security features of our Application, such as JWT authentication

\HomeGoWhere\src\test\java\HomeGoWhere\HomeGoWhere

  • Contains all the API Endpoint unit testing to ensure the API Endpoints are working as intended

  1. Facade Pattern via the Controllers.
    1. Refer to \HomeGoWhere\src\main\java\HomeGoWhere\controller
    2. The goal is to simplify the interactions with various subsystems, thereby enhancing usability and maintainability.

  1. Single Responsibility Principle
    1. Different packages with different distinct responsibilities are created. Specific classes in each package are responsible for a specific business model or logic group.
  2. Open-Closed Principle
    1. The application is open to extension through the use of facade pattern (controllers).
  3. Interface Segregation Principle
    1. Small and specific interfaces are used
  4. Dependency Injection Principle
    1. Spring boot application has appropriate annotations such as @Service and @Autowired to mark the classes where dependencies need to be injected


Frontend:


  • React Native
  • JavaScript
  • Expo

Backend:


  • SpringBoot
  • Java
  • PostgresSQL

Schools

Hawker Centre

Bus Stop (Require API KEY)

Past Rental Prices (Require API KEY) [Live]


To be filled.


The following contributors have contributed to the whole Software Developement Life-cycle, including (not exhausive):

  1. Ideation and refinement
  2. Generation of functional and non-funtional requirements
  3. Generation of Use Cases and Descriptions
  4. UI/UX Mockup and Prototyping (Figma)
  5. Design of Architecture Diagram, Class Diagram, Sequence Diagrams, and Dialog Map Diagram
  6. Development of Application
  7. Black-box and White-box Testing
  8. Documentations
Name Github Username Role
Lim Jing Rong jingronggg Backend/Frontend
Loo Ping Wee lpwee Backend/Frontend
Goh Shuen Wei shuenwei Backend/Frontend
Ng Jing En negnij Backend/Frontend
Babu Sankar Nithin Sankar nithinsankar-b Backend/Frontend
Lau Zhan You donkey-king-kong Backend/Frontend

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors