Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
dd5cfc8
GitHub Classroom Feedback
github-classroom[bot] Sep 5, 2024
ec2a836
Setting up GitHub Classroom Feedback
github-classroom[bot] Sep 5, 2024
076b952
JD
jcdingg Sep 5, 2024
e7b2e25
Added my introduction to team.md
XiangZhang-zx Sep 6, 2024
ecda97f
Added my introduction to team.md
XiangZhang-zx Sep 6, 2024
3acf9fd
Update team.md
jessicawu806 Sep 6, 2024
b45a428
Merge branch 'lab1' of https://github.com/BUMETCS673/seprojects-cs673…
jessicawu806 Sep 6, 2024
25ab866
Added my self-introduction to team.md
oceansource1 Sep 7, 2024
6638710
Update README.md
jessicawu806 Sep 8, 2024
7a5af5a
Merge pull request #2 from BUMETCS673/lab1
jessicawu806 Sep 8, 2024
9f3fedc
Update README.md
jessicawu806 Sep 9, 2024
e817b6c
create frontend & backend dir
jessicawu806 Sep 9, 2024
af2c755
Update README.md
jessicawu806 Sep 9, 2024
c35421e
Update team.md
jessicawu806 Sep 9, 2024
9411ce2
Update README.md
raindongz Sep 9, 2024
da8d0fa
Merge pull request #3 from BUMETCS673/lab1
raindongz Sep 9, 2024
8a8bc32
my self-introduction added in team.md
raindongz Sep 10, 2024
6be3778
Remove embedded Git repository
oceansource1 Sep 11, 2024
e7cf09b
Delete code/frontend directory
oceansource1 Sep 11, 2024
1d8af7e
Add .gitignore to ignore .DS_Store
oceansource1 Sep 11, 2024
731d048
Add frontend project files
oceansource1 Sep 11, 2024
d331600
Add .gitignore to ignore .DS_Store files
oceansource1 Sep 11, 2024
2e3c095
Remove rental submodule reference
oceansource1 Sep 11, 2024
772ed61
Re-add rental folder
oceansource1 Sep 11, 2024
2aab909
Delete code/frontend/rental directory
oceansource1 Sep 11, 2024
00b53b9
upload iteration 0 documents
jessicawu806 Sep 12, 2024
d28010d
upload presentation
jessicawu806 Sep 12, 2024
5268485
Create Readme.md
jessicawu806 Sep 12, 2024
aac56f5
Update Readme.md
jessicawu806 Sep 12, 2024
aa50958
upload STD
jessicawu806 Sep 12, 2024
11a209f
upload video
jessicawu806 Sep 12, 2024
9848d81
delete extra dir
jessicawu806 Sep 12, 2024
873079b
Merge branch 'main' into lab1
jessicawu806 Sep 12, 2024
1143ad2
Update team.md
Xueqi127 Sep 12, 2024
a5b023e
set up CI/CD pipline, configured AWS and created 3 functions
raindongz Sep 13, 2024
077c5ba
added centrallized exception handler for get-presigned-url function
raindongz Sep 14, 2024
ee2fadb
Update README.md, add the related link
jessicawu806 Sep 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added .github/.keep
Empty file.
79 changes: 79 additions & 0 deletions .github/workflows/ci-cd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: AWS Lambda CI/CD
on:
push:
branches: [main]
jobs:
build-and-deploy:
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout

runs-on: ubuntu-latest
steps:
- name: Code Checkout
uses: actions/checkout@v3

- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'

# - name: Build GetMyPostList Lambda function
# run: |
# cd GetMyPostList
# mvn clean package -B
# cd ..
#
# - name: Build GetPostList Lambda function
# run: |
# cd GetPostList
# mvn clean package -B
# cd ..
#
#
# - name: Build UpdateMyPostInfo Lambda function
# run: |
# cd UpdateMyPostInfo
# mvn clean package -B
# cd ..

- name: Build GetSpecificPostDetail Lambda function
run: |
cd code/backend/RentalNinja/GetSpecificPostDetail
mvn clean package -B
cd ..

- name: Build GetPresignedUrl Lambda function
run: |
cd code/backend/RentalNinja/GetPresignedUrl
mvn clean package -B
cd ..

- name: Build UploadPost Lambda function
run: |
cd code/backend/RentalNinja/UploadPost
mvn clean package -B
cd ..

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::730335295917:role/github-action-lambda
aws-region: us-east-2

- name: Create AWS Lambda Function
run: |
aws lambda create-function --function-name GetPresignedUrl --runtime java17 --handler com.rundong.GetPresignedUrl::handleRequest --role arn:aws:iam::730335295917:role/lambda-role --zip-file fileb://code/backend/RentalNinja/GetPresignedUrl/target/GetPresignedUrl-1.0-SNAPSHOT.jar
aws lambda create-function --function-name UploadPost --runtime java17 --handler com.rundong.UploadPost::handleRequest --role arn:aws:iam::730335295917:role/lambda-role --zip-file fileb://code/backend/RentalNinja/UploadPost/target/UploadPost-1.0-SNAPSHOT.jar
aws lambda create-function --function-name GetSpecificPostDetail --runtime java17 --handler com.rundong.GetSpecificPostDetail::handleRequest --role arn:aws:iam::730335295917:role/lambda-role --zip-file fileb://code/backend/RentalNinja/GetSpecificPostDetail/target/GetSpecificPostDetail-1.0-SNAPSHOT.jar
continue-on-error: true

- name: Update Lambda Function
run: |
aws lambda update-function-code --function-name GetPresignedUrl --zip-file fileb://code/backend/RentalNinja/GetPresignedUrl/target/GetPresignedUrl-1.0-SNAPSHOT.jar
aws lambda update-function-code --function-name UploadPost --zip-file fileb://code/backend/RentalNinja/UploadPost/target/UploadPost-1.0-SNAPSHOT.jar
aws lambda update-function-code --function-name GetSpecificPostDetail --zip-file fileb://code/backend/RentalNinja/GetSpecificPostDetail/target/GetSpecificPostDetail-1.0-SNAPSHOT.jar



2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.DS_Store
.DS_Store
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions .idea/aws.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/project.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 63 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,63 @@
# GroupProjectTemplate
Please make sure to modify this readme file as well as the "about" property of the project!
# Project: Rent & Housing Platform

## Project Introduction:
The Rent & Housing Platform is a web application designed to streamline the housing search process for students. Whether they are looking for shared apartments, individual rental properties, or housing information, our platform offers a seamless and efficient user experience
Key features include user registration and management, posting and searching rental listings, and collecting rental details.

## Objectives

The primary objectives of this web application are to:
- User Registration and Profile Management: Students can create accounts, manage their profiles, and save listings.
- Rental Listings: Users can post, browse, and filter rental properties based on various criteria such as location, price, and property type.
- Advanced Search and Filtering: Our platform allows students to search properties using filters like price range, proximity to universities, and property amenities.
- Real-time Performance Enhancements: our platform ensures fast and efficient data access, providing users with quick responses and real-time updates.
- Scalable and Reliable Backend: Built using Java and powered by DynamoDB, the system is designed to handle large volumes of data while maintaining performance, ensuring the platform can grow as more users join.

## Tech Stack

- **Frontend**: Vue.js for responsive and dynamic user interfaces.
- **Backend**: Java (AWS Lambda) for handling business logic and server-side processes.
- **Database**: AWS DynamoDB Service for data storage and management.

## Installation and Setup

### Prerequisites
- **Java**: Version 17 or higher
- **Vue.js**: Version 3.53 or higher
- **Dynamodb**: AWS DynamoDB Service

### Steps
1. **Clone the Repository**
```bash
git clone https://github.com/BUMETCS673/seprojects-cs673f24a2team2.git
```
2. **Frontend(Vue.js)**
```bash
cd code/frontend
npm install
```
3. **Backend(Java Spring Boot)**
```bash
cd code/backend
1. install sam cli(You will need an AWS account and properly configured AWS credentials.)
2. sam local invoke <function name> --debug-port <your_port> --event <your_test_event.json>
```
4. **Database Configuration:**
- Make sure your AWS credentials are set up to access DynamoDB.

5. **Access the Application**
- Frontend: Open your browser and navigate to http://localhost:8081 to access the platform.
- Backend API: The backend is running at http://localhost:8080.

## Team Introduction:
- Yongjing Wu (Team Leader)
- Xueqi Zhou (Requirement Leader)
- Yueyang He (Design and Implementation Leader)
- Rundong Zhong (Configuration Leader)
- Xiang Zhang (QA Leader)
- Jiacheng Ding (Security Leader)

## Related Resources:
- Jira: https://rentandhousing.atlassian.net/jira/software/projects/SCRUM/boards/1
- Google Drive: https://drive.google.com/drive/u/3/folders/1tMHmvLavN5HOh6yXjT-2AVVOctPHYFme
- Github: https://github.com/BUMETCS673/seprojects-cs673olf24team2
1 change: 1 addition & 0 deletions code/backend/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This folder contains all backend source code and test code.
45 changes: 45 additions & 0 deletions code/backend/RentalNinja/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### IntelliJ IDEA ###
.idea
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr

### aws lambda
debugEvents/
template.yaml
.aws-sam/
.github/
25 changes: 25 additions & 0 deletions code/backend/RentalNinja/GetMyPostList/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.rundong</groupId>
<artifactId>GetMyPostList</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>GetMyPostList</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.rundong;

/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
Loading