Skip to content

indianaPoly/rust-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SSU CLI

SSU CLI는 명령줄 인터페이스 도구입니다. 중요한 학부 공지사항을 놓치지 않도록 도와주는 기능과 집중 학습을 위한 뽀모도로 타이머 기능을 제공하여, 학습 습관 형성을 지원합니다.

⌘ 주요 기능

1. 공지사항 알림 (fetch-notice)

숭실대학교 소프트웨어학부의 최신 공지사항을 놓치지 않도록 알려줍니다.

  • 자동 스크래핑: 숭실대학교 소프트웨어학부 홈페이지에서 공지사항을 자동으로 스크래핑합니다.
  • Telegram 알림: 최신 공지사항 7개를 지정된 Telegram 채널 또는 채팅방으로 즉시 전송합니다.
  • 상세 정보 포함: 공지사항의 제목, 원본 링크 및 게시 타임스탬프를 메시지에 포함하여 편리하게 확인할 수 있습니다.
  • Markdown 형식: Telegram 메시지는 가독성을 높이기 위해 Markdown 형식으로 깔끔하게 포맷팅됩니다.

2. 뽀모도로 타이머 (timer)

집중력 향상에 효과적인 뽀모도로 기법을 CLI 환경에서 편리하게 사용할 수 있도록 돕습니다.

  • 25/5분 주기: 표준 25분 작업 / 5분 휴식 주기를 따르며, 필요에 따라 조정 가능합니다.
  • 시각적 타이머: ASCII 아트를 활용하여 터미널에 타이머의 진행 상황을 시각적으로 표시합니다.
  • 컬러 코딩: 작업 세션과 휴식 세션을 명확히 구분할 수 있도록 컬러 코딩을 적용했습니다.
  • 동기 부여 메시지: 작업 또는 휴식 세션 중에 무작위로 재미있고 동기 부여가 되는 한국어 메시지를 표시하여 활력을 더합니다.

⌘ 기술 스택 및 개발 상세 내용

Rust (주요 언어)

선택 이유:

  • 성능 및 효율성: 웹 스크래핑 및 터미널 UI와 같이 성능이 중요한 애플리케이션에 적합하다 판단
  • 동시성 지원:공 지사항 스크래핑 중에도 타이머가 작동할 수 있는 환경이 필요하다 판단

필수 크레이트 (Rust 라이브러리)

각 크레이트는 특정 기능 구현을 위해 Rust의 강력한 생태계를 활용했습니다.

  • tokio: 비동기 런타임을 제공
  • reqwest: HTTP 클라이언트
  • scraper: HTML 파싱 및 DOM 조작을 위한 라이브러리
  • crossterm: 크로스 플랫폼 터미널 UI 라이브러리
  • rustyline: 명령줄 입력 인터페이스 구현
  • chrono: 날짜/시간 관리 라이브러리
  • serde_json: `Telegram API와 통신할 때 JSON 데이터를 쉽게 처리

⌘ 설치 요구사항

SSU CLI를 실행하려면 다음 환경이 필요합니다:

  • Rust 환경: Rust 프로그래밍 언어 및 cargo (Rust 패키지 관리자)가 설치되어 있어야 합니다.

⌘ 환경 설정 및 사용 방법

SSU CLI의 fetch-notice 기능을 사용하려면 Telegram 봇 설정이 필요합니다.

  1. .env 파일 생성: 프로젝트 루트 디렉토리에 .env 파일을 생성하고 다음 변수를 설정합니다.

    TELEGRAM_TOKEN=your_telegram_bot_token
    TELEGRAM_CHAT_ID=your_telegram_chat_id
    
    • your_telegram_bot_token: BotFather를 통해 Telegram 봇을 생성하고 발급받은 토큰을 입력합니다.
    • your_telegram_chat_id: 공지사항 알림을 받을 개인 채팅방 또는 그룹 채팅방의 ID를 입력합니다. (예: Get My ID Bot 사용)
  2. 프로젝트 클론:

    git clone [SSU CLI GitHub Repository URL]
    cd ssu-cli

    https://github.com/indianaPoly/rust-cli

  3. 의존성 설치 및 프로젝트 실행:

    cargo run

    cargo run 명령어를 실행하면 SSU CLI가 시작되고 명령어를 입력할 수 있는 프롬프트가 나타납니다.

  4. 사용 가능한 명령어: 프롬프트에서 다음 명령어를 입력하여 기능을 실행할 수 있습니다:

    • help: 사용 가능한 명령어 목록과 간략한 설명을 표시합니다.
    • fetch-notice: 숭실대학교 소프트웨어학부의 최신 공지사항을 스크래핑하여 Telegram으로 전송합니다.
    • timer: 뽀모도로 타이머를 시작합니다.
    • exit: SSU CLI 프로그램을 종료합니다.

About

Rust를 활용한 CLI 프로그램입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages