Skip to content

OneDayOneAlgorithm/ASAF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧳 어쩌다 싸피

== Contents ==

  1. 개요
  2. 프로젝트 소개
  3. 주요 기능
  4. 프로젝트 실행방법
  5. 기술스택
  6. 프로젝트 구조도
  7. Design
  8. Team


1. 개요

  • 개발 기간: 2023.07.04 ~ 2023.08.18

  • 삼성 청년 소프트웨어 아카데미(SSAFY) 모바일 어플리케이션 공통 프로젝트.

    #모바일 어플리케이션 #사내 시스템 앱



2. 프로젝트 소개

🌊 어쩌다싸피 : '어쩌다 어른' + 'SSAFY'

  • SSAFY 구성원이 활용할 수 있는 사내 시스템 앱 개발


3. 주요 기능

3.1. NFC 학생증

  • 전자학생증을 통한 간편한 출입시스템, 개인 정보 제공

3.2. 도서관 대여

  • 수기로 작성하는 도서관리 대장을 전자화
  • 도서 반납/대출/현황을 QR코드로 빠르고 간편하게
  • 비콘 근처에서만 작동하도록 제한

3.3. 문서 작업 간편화

  • 매달 반복되는 교육지원금 서명을 별도 저장소에 빠르게 생성하여 업로드
  • 문서 작업 최소화를 위한 반, 월별 서명 이미지 합치기 기능

3.4. 자리 및 사물함 배치

  • 랜덤 자리배치 기능

3.5. 공지사항 전파

  • 달력에 일정을 등록하여 정해진 시간에 일괄 공지사항 전파

3.6. 출결 관리

  • 출결 상황을 한눈에 볼 수 있는 출석 현황표

3.7 중고거래

  • 중고마켓을 통해 SSAFY 졸업 후 매물교환 창구 제공


4. 프로젝트 실행 방법

4.1. server 실행

  1. 원격 저장소 복제(git clone)
https://github.com/OneDayOneAlgorithm/ASAF.git
  1. PostgreSQL 13버전 설치
https://www.postgresql.org/download/windows/
  1. pgadmin 4 툴을 사용해서 사용자 : test / 암호 : 1234 로 사용자 생성

  1. 이름 : asaf 로 DB 생성

  1. jar 파일이 있는 경로로 이동
$ cd backend/ASAF/build/libs
  1. 서버 실행
java -jar ASAF-0.0.1-SNAPSHOT.jar

4.2 mobile 실행

  1. mobile 코드 경로로 이동
$ cd frontend\ASAF
  1. Adroid Studio로 실행


5. 기술 스택

5.1. Back-End

  • Spring boot : 알고알리움 Project의 전반적인 Rest Controller 구현.
  • JPA (Hibernate) : ORM인 Hibernate를 활용하여 객체 중심의 개발을 할 수 있도록 하였고, SQL을 직접 작성하지 않고 Entity 필드가 되는 객체를 통해 DB를 동작시켜 유지보수에 용이하게 활용.
    • 동일한 쿼리에 대한 캐시 기능을 사용하기 때문에 높은 효율성 기대.
  • PostgreSQL : RDBMS로 알고알리움의 사용자, 문제 정보 등 필요한 데이터를 저장.
    • 만료일을 저장하면 만료 시 자동으로 데이터가 사라지는 특성을 활용하여 카카오톡 인증 토큰을 저장하여 로그인에 활용.
  • AWS : EC2 서비스를 이용하여 Ubuntu 서버를 구축 (호스팅).
  • Nginx : 웹 서버를 구축
    • default.conf를 수정하여 EC2에 저장된 파일 경로를 참조할 수 있게 활용.

5.2. Front-End

  • Android Studio : 어쩌다싸피 Project의 mobile 어플리케이션 구현.
  • NFC : 아두이노를 활용한 NFC으로 출입 기능 구현.
  • SMTP : Firebase Cloud Messaging을 사용해 모바일 알림기능 활성화.
  • IBeacon : 도서관에 비콘을 설치해 사용 구역 제한.
  • QR Code : 도서관 대출 기능 구현.

5.3. TEAM Cooperaion

  • GitLab: GitLab을 활용하여 프로젝트를 관리.
    • Git Flow 에 따른 브랜치 전략 수립.
    • MR 시 코드 리뷰 진행.
  • Jira: 이슈 관리 도구로 활용.
    • 주요 기능들을 이슈로 등록하고 Stroy Point를 산정한 후, 담당자를 지정하여 프로젝트를 진행.
    • 1~2 주 정도 상황에 맞게 스프린트를 설정.
  • Google Drive : 협업을 위한 공용 문서 및 산출물들을 공유할 수 있도록 활용.
    • 동시 문서 작성 (Google Docs).
    • 대용량 파일 첨부.
  • Notion
    • 일정 관리 및 트러블 슈팅 메모.
    • 세션을 통해 새로운 지식 공유.


6. 프로젝트 구조도

└─📂backend
    └─📁 idea
    └─📁 ASAF
└─📂frontend
    └─📁 ASAF
Back-End
├─gradle
│  └─wrapper
├─META-INF
└─src
    ├─main
    │  ├─java
    │  │  ├─com
    │  │  │  └─ASAF
    │  │  │      ├─config
    │  │  │      ├─controller
    │  │  │      ├─dto
    │  │  │      ├─entity
    │  │  │      ├─repository
    │  │  │      └─service
    │  │  └─META-INF
    │  └─resources
    │      ├─META-INF
    │      ├─static
    │      │  └─images
    │      │      ├─profile_images
    │      │      └─sign_images
    │      └─templates
    └─test
        └─java
            └─com
                └─ASAF
Front-End
├─.idea
│  └─codeStyles
├─app
│  ├─libs
│  └─src
│      ├─androidTest
│      │  └─java
│      │      └─com
│      │          └─d103
│      │              └─asaf
│      ├─main
│      │  ├─java
│      │  │  └─com
│      │  │      └─d103
│      │  │          └─asaf
│      │  │              ├─common
│      │  │              │  ├─component
│      │  │              │  │  └─adapter
│      │  │              │  ├─config
│      │  │              │  ├─model
│      │  │              │  │  ├─api
│      │  │              │  │  ├─dto
│      │  │              │  │  └─Room
│      │  │              │  ├─splash
│      │  │              │  └─util
│      │  │              └─ui
│      │  │                  ├─bus
│      │  │                  ├─home
│      │  │                  │  ├─pro
│      │  │                  │  └─student
│      │  │                  ├─join
│      │  │                  ├─library
│      │  │                  │  ├─adapter
│      │  │                  │  ├─pro
│      │  │                  │  └─student
│      │  │                  ├─login
│      │  │                  ├─market
│      │  │                  ├─noti
│      │  │                  ├─op
│      │  │                  │  ├─adapter
│      │  │                  │  └─dialog
│      │  │                  ├─schedule
│      │  │                  ├─setting
│      │  │                  └─sign
│      │  ├─jniLibs
│      │  │  ├─arm64-v8a
│      │  │  ├─armeabi
│      │  │  └─armeabi-v7a
│      │  └─res
│      │      ├─drawable
│      │      ├─drawable-v24
│      │      ├─font
│      │      ├─layout
│      │      ├─menu
│      │      ├─mipmap-anydpi-v26
│      │      ├─mipmap-hdpi
│      │      ├─mipmap-mdpi
│      │      ├─mipmap-xhdpi
│      │      ├─mipmap-xxhdpi
│      │      ├─mipmap-xxxhdpi
│      │      ├─navigation
│      │      ├─raw
│      │      ├─values
│      │      ├─values-night
│      │      └─xml
│      └─test
│          └─java
│              └─com
│                  └─d103
│                      └─asaf
└─gradle
    └─wrapper

7. Design

7.1. 시스템 아키텍쳐


7.2. 기능 명세서

7.3. ERD



8. Team

  • 권민재 - Minjae Kwon - [Front]
  • 김준성 - Junseong Kim - [Back]
  • 김형진 - Hyungjin Kim - [Back]
  • 박현우 - Hyunwoo Park - [Front]
  • 장진욱 - Jinwook Jang - [Back]
  • 최재원 - Jaewon Choi - [Front]

About

사내 시스템 앱 / 2023.07.04 ~ 2023.08.18 / 6명

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published