Skip to content
Merged
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5e4f939
#26 [DOCS] 리드미 내용 수정 및 화면 삽입
nhyeonii Feb 22, 2025
b2bd669
#26 [DOCS] 리드미 내용 수정 및 화면 삽입
nhyeonii Feb 22, 2025
de61cea
#26 [DOCS] 리드미 실행 화면 크기 수정
nhyeonii Feb 22, 2025
695bc29
#26 [DOCS] 리드미 실행 화면 크기 수정
nhyeonii Feb 22, 2025
97e5cc2
#26 [DOCS] 리드미 실행 화면 크기 수정
nhyeonii Feb 22, 2025
df5ff22
#26 [DOCS] 리드미 실행 화면 크기 수정
nhyeonii Feb 22, 2025
e0d37b3
#26 [DOCS] 리드미 실행 화면 크기 수정
nhyeonii Feb 22, 2025
b29aaa5
#26 [DOCS] 리드미 실행 화면 크기 수정
nhyeonii Feb 22, 2025
7a9e8c3
#26 [DOCS] 리드미 실행 화면 크기 수정
nhyeonii Feb 22, 2025
ea5f911
#26 [DOCS] 리드미 설명 내용 수정
nhyeonii Feb 22, 2025
518fddf
#26 [DOCS] 리드미 참여자 사진 삽입
nhyeonii Feb 22, 2025
a948a18
#26 [DOCS] 리드미 참여자 사진 수정
nhyeonii Feb 22, 2025
3ebfa16
#26 [DOCS] 리드미 참여자 글씨 크기 수정
nhyeonii Feb 22, 2025
65ba730
#26 [DOCS] 리드미 참여자 글씨 크기 수정
nhyeonii Feb 22, 2025
4f3aa63
#26 [DOCS] 리드미 참여자 글씨 크기 수정
nhyeonii Feb 22, 2025
1462a39
#26 [DOCS] 리드미 참여자 글씨 크기 수정
nhyeonii Feb 22, 2025
95bd380
#26 [DOCS] 리드미 참여자 글씨 크기 수정
nhyeonii Feb 22, 2025
b3f12ed
#26 [DOCS] 리드미 참여자 글씨 배치 수정
nhyeonii Feb 22, 2025
0809aa2
#26 [DOCS] 리드미 기술 스택 및 화면 구성 내용 수정
nhyeonii Feb 22, 2025
6e83808
#26 [DOCS] 리드미 주요 기능 및 프로젝트 구조 수정
nhyeonii Feb 23, 2025
72806c3
#26 [DOCS] 리드미 주요 기능 및 프로젝트 구조 수정
nhyeonii Feb 23, 2025
98f0fa6
#26 [DOCS] 리드미 프로젝트 구조 수정
nhyeonii Feb 23, 2025
f7f0adf
#26 [DOCS] 리드미 프로젝트 구조 수정
nhyeonii Feb 23, 2025
3d65d22
#26 [DOCS] 주요 기능 내용 수정
gaeulzzang Feb 23, 2025
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
162 changes: 64 additions & 98 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,136 +5,102 @@
서울 도심 주요 집회 장소의 **실시간 혼잡도**와 **교통 통제 정보**를 제공하는 Android 애플리케이션입니다.

## 📌 주요 기능
- **실시간 혼잡도 조회**: 주요 집회 장소의 혼잡도를 실시간으로 확인할 수 있습니다.
- **교통 통제 정보 제공**: 서울 도심 내 교통 통제 구간 및 우회 경로를 안내합니다.
- **위치 기반 서비스**: 사용자의 현재 위치를 기반으로 가까운 주요 집회 장소의 혼잡도를 확인할 수 있습니다.
- **사용자 맞춤 알림**: 관심 지역의 혼잡도 변화를 알림으로 받을 수 있습니다.
- **실시간 혼잡도 조회**: 서울시 주요 집회 장소 5곳의 혼잡도와 날씨를 실시간으로 확인할 수 있습니다.
- **교통 통제 정보 제공**: 서울 도심 내 교통 통제 구간 정보를 실시간으로 안내합니다.
- **집회 정보 제공**:서울경찰청의 오늘의 집회 정보를 크롤링하여 캘린더에서 일정과 상세 내용을 확인합니다.

## 👩‍💻 Front-End 팀원

<table>
<tbody>
<tr>
<td align="center">
<td align="center">
<a href="https://github.com/nhyeonii">
<img src="./app/src/main/res/drawable/user_1.png" width="100px;" alt="nhyeonii 프로필 사진"/>
<br /><sub><b>김나현</b></sub>
<img src="https://github.com/user-attachments/assets/e8af2acd-414b-47a1-996d-24e9b2b9b4cf" width="250px;" alt="nhyeonii 프로필 사진"/>
<br /><span style="font-size: 1.5em; font-weight: bold;">김나현</span>
</a>
<br />숙명여자대학교 소프트웨어융합
<br />숙명여자대학교
<br />소프트웨어융합
</td>
<td align="center">
<a href="https://github.com/gaeulzzang">
<img src="./app/src/main/res/drawable/user_2.png" width="100px;" alt="gaeulzzang 프로필 사진"/>
<br /><sub><b>이가을</b></sub>
<img src="https://github.com/user-attachments/assets/f9cc751b-e10f-4e01-9cb2-1d8e7d546045" width="250px;" alt="gaeulzzang 프로필 사진"/>
<br /><span style="font-size: 1.5em; font-weight: bold;">이가을</span>
</a>
<br />숙명여자대학교 컴퓨터과학과
<br />숙명여자대학교
<br />컴퓨터과학과
</td>
<td align="center">
<td align="center">
<a href="https://github.com/jjwm10625">
<img src="./app/src/main/res/drawable/user_3.PNG" width="100px;" alt="jjwm10625 프로필 사진"/>
<br /><sub><b>조영서</b></sub>
<img src="https://github.com/user-attachments/assets/7cca1162-9d36-4db0-b118-412ea116c886" width="250px;" alt="jjwm10625 프로필 사진"/>
<br /><span style="font-size: 1.5em; font-weight: bold;">조영서</span>
</a>
<br />숙명여자대학교 컴퓨터과학과
<br />숙명여자대학교
<br />컴퓨터과학과
</td>
</tr>
</tbody>
</table>




## 🛠 기술 스택
- **언어**: Kotlin
- **프레임워크**: Jetpack Compose
- **아키텍처**: 클린 아키텍처 (Clean Architecture)
- **백엔드**: Spring Boot
- **지도 API**: Google Maps API
- **데이터베이스**: Firebase / PostgreSQL
- **지도 API**: Naver Maps API
- **버전 관리**: Git, GitHub

## 📌 프로젝트 소개
| 화면 | 설명 |
|------|------|
| ![스플래시 화면](이미지_경로) | 앱 실행 시 로고 및 초기 로딩 화면 |
| ![메인 지도 화면](이미지_경로) | 서울 도심 지도와 실시간 혼잡도를 제공 |
| ![지도 칩 클릭 시 화면](이미지_경로) | 특정 지역 선택 시 혼잡도 및 교통 통제 정보 표시 |
| ![상세 페이지 화면](이미지_경로) | 선택된 지역의 상세 정보 및 예상 혼잡도 분석 제공 |
| ![캘린더 화면](이미지_경로) | 날짜별 예상 혼잡도를 확인할 수 있는 화면 |
| <img src="https://github.com/user-attachments/assets/479fe920-1691-4773-ab9b-783751544331"/> | <img src="https://github.com/user-attachments/assets/d178be92-e0d7-4d5e-bd17-bbfdb58fadb7"/> | <img src="https://github.com/user-attachments/assets/8c79d35a-19ce-49dd-b236-06f73970fff7"/> |
|:---------:|:--------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------:|
| 앱 실행 시 로고 및 초기 로딩 화면 | 서울 도심 지도와 실시간 혼잡도 제공 | 특정 지역 선택 시 혼잡도 정보 표시 |

| <img src="https://github.com/user-attachments/assets/63f1881a-18a0-4dcc-b257-3050820ab602"/> | <img src="https://github.com/user-attachments/assets/93c059b1-cc61-4c58-8353-0012e5d4e7a8"/> | <img src="https://github.com/user-attachments/assets/790b4194-5199-4be2-866f-64e54f718fd0"/> |
|:--------------------------------------------------------------------------------------------:|:---------:|:--------------------------------------------------------------------------------------------:|
| 선택된 교통 통제 정보 표시 | 선택된 지역의 상세 정보 및 실시간 날씨 제공 | 날짜별 집회 일정 제공 |





## 📂 프로젝트 구조
```
CrowdZero-Android
│── app (Presentation Layer)
│ ├── di # 의존성 주입 모듈
│ ├── main # 메인 액티비티 및 네비게이션 관리
│ ├── navigation # 화면 이동 로직 관리
│ ├── ui # UI 관련 코드
│ ├── viewmodel # ViewModel 및 상태 관리
📦 CrowdZero-Android
│── 📁 app (Presentation Layer)
│ ├── 📁 di
│ ├── 📁 main
│ ├── 📁 navigation
│── core (Core Layer)
│ ├── designsystem # UI 디자인 시스템 및 컴포넌트
│ ├── extension # 확장 함수
│ ├── navigation # 공통 네비게이션 로직
│ ├── state # UI 상태 관리
│ ├── util # 공통 유틸리티
│── 📁 core (Core Layer)
│ ├── 📁 designsystem
│ │ ├── 📁 component
│ │ └── 📁 theme
│ ├── 📁 extension
│ ├── 📁 navigation
│ ├── 📁 state
│ ├── 📁 type
│ ├── 📁 util
│── data (Data Layer)
│ ├── datasource # 원격 및 로컬 데이터 소스
│ ├── datasourceimpl # 데이터 소스 구현체
│ ├── dto # 데이터 전송 객체
│ ├── mapper # 데이터 변환 매퍼
│ ├── repositoryimpl # 데이터 저장소 구현체
│── 📁 data (Data Layer)
│ ├── 📁 datasource
│ ├── 📁 datasourceimpl
│ ├── 📁 dto
│ │ ├── 📁 request
│ │ └── 📁 response
│ ├── 📁 mapper
│ ├── 📁 repositoryimpl
│ ├── 📁 service
│── domain (Domain Layer)
│ ├── entity # 비즈니스 도메인 모델
│ ├── repository # 인터페이스 및 비즈니스 로직
│── 📁 domain (Domain Layer)
│ ├── 📁 entity
│ ├── 📁 repository
│── feature (Feature Modules)
│ ├── map # 지도 탭
│ ├── calendar # 집회 일정 탭
│ ├── detail # 장소 상세 화면
│ ├── example # 예제 화면
│── 📁 feature (Feature Modules)
│ ├── 📁 calendar
│ ├── 📁 detail
│ ├── 📁 map
├── build.gradle.kts
├── README.md
└── .gitignore
└── 📄 build.gradle.kts
```

## 📱 주요 화면 구성
1. **스플래시 화면**: 앱 실행 시 로고 및 초기 로딩 화면
2. **메인 지도 화면**: 서울 도심 지도와 실시간 혼잡도를 제공
3. **지도 칩 클릭 시 화면**: 특정 지역 선택 시 혼잡도 및 교통 통제 정보 표시
4. **상세 페이지 화면**: 선택된 지역의 상세 정보 및 예상 혼잡도 분석 제공
5. **캘린더 화면**: 날짜별 예상 혼잡도를 확인할 수 있는 화면

## 🚀 설치 및 실행 방법
1. **프로젝트 클론**
```bash
git clone https://github.com/Team-CrowdZero/CrowdZero-Android.git
cd CrowdZero-Android
```
2. **Android Studio에서 프로젝트 열기**
3. **필요한 API Key 설정** (Google Maps API, Firebase 등)
4. **앱 실행**
- Android Studio에서 `Run` 버튼 클릭
- 또는 `Gradle` 빌드를 사용하여 실행

## 📌 기여 가이드
1. 이슈를 확인하고 작업할 사항을 선택합니다.
2. 새로운 브랜치를 생성합니다.
```bash
git checkout -b feature/기능명
```
3. 개발 후 커밋합니다.
```bash
git add .
git commit -m "[Feat] 기능 설명"
```
4. 원격 저장소에 푸시합니다.
```bash
git push origin feature/기능명
```
5. PR(Pull Request)을 생성하고 코드 리뷰 후 병합합니다.

## 📞 연락처
- **GitHub**: [Team-CrowdZero](https://github.com/Team-CrowdZero)

---

<혼잡제로>는 서울 도심 내 집회 및 교통 혼잡도를 줄이는 데 기여하고자 합니다. 많은 관심과 기여 부탁드립니다! 🙌