Giter VIP home page Giter VIP logo

lic's Introduction

Code style: black Python: Version Docker: Version


Stack Lounge

국내 개발자들을 위한 기술 스택 정보 공유 서비스

Table of Contents

  1. About The Project
  2. Getting Started
  3. Roadmap
  4. License
  5. Team
  6. Wiki

About The Project

개발자가 되기 위해서는 언어만 다뤄서 되는 것이 아니죠. 다양한 기술 스택과 프레임워크를 알아야 현재 트렌드도 알 수 있고 뒤쳐지지 않을 수 있습니다. 해외에는 이미 비슷한 서비스가 있지만, 국내에는 기술 스택에 대해서 일반적으로 다가가기 쉽지 않은 상황입니다.
Stack Lounge는 이제 막 입문하기 시작하는 학생들과 새로운 배움을 추구하는 이들이 기술 스택에 조금 더 가까워질 수 있기 위한 서비스입니다.
국내 IT 서비스 기업에서 사용하고 있는 기술 스택 정보를 기업별로 나열합니다. 필요한 기술 스택 정보는 scrapy 를 활용하며, 해당 기술 스택에 대한 선행사례는 기업들의 기술 블로그의 내용을 keyword extraction 을 통해 보여줍니다.

Built With

이러한 기술들로 만들고 있습니다.
  • Docker
  • Django
  • AndroidStudio
  • AWS EC2
  • GraphQL
  • MongoDB
  • Firebase

Getting Started

팀원들을 위한 프로젝트 기여 방법

Prerequisites

기본적으로 전체 개발에 필요한 파이썬 패키지를 받아야 합니다.

  1. 저장소를 클론 해주세요.
    git clone https://github.com/KPUCE2021SP/LiC.git
  2. venv 를 생성합니다.
    # ubuntu 환경에서
    sudo apt-get update
    sudo apt-get install python3-venv
    python3 -m venv virtual-environment-name
  3. 생성한 virtual environment 를 사용합니다.
    # ubuntu 환경에서
    source virtual-environment-name/bin/activate
  4. 필요한 Python Library 를 pip 로 받습니다.
    # ubuntu 환경에서
    sudo apt-get install python3-pip
    cd LiC
    python3 -m pip install -r requirements.txt

Starting Up

  1. Docker Container를 시작해주세요
    docker-compose up -d
  2. 컨테이너 확인
    localhost:8081 -> MongoExpress
    localhost:8000/graphql -> Django / GraphQL
    

Roadmap

open issues에 추가할 기능 사항을 올리고 개발할 때 참고해주세요.

Basic Layout

image

License

Distributed under the APACHE 2.0 License. See LICENSE for more information.

Team Members

  • 홍성민 - Scrapy, MongoDB, Django, Docker, Graphql, EC2, Client(UI, Home, Search)
  • 배준일 - Client(Login&Logout(GithubAPI), Community, Base UI), RealtimeDB)
  • 한상우 - Scrapy, Cloud Functions, GithubAPI, MongoDB, RealtimeDB, PapagoAPI

Wiki

진행하면서 다양한 정리거리는 위키참고 영어버젼

lic's People

Contributors

bjo6300 avatar dependabot[bot] avatar gijeon82 avatar kkodiac avatar sktkddn777 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

lic's Issues

[2차 스프린트] 사용자 개인 정보 화면 UI 세부 구성

사용자의 Github 계정에서 연동해 온 Star 을 한 Topic 을 메일 UI 화면으로 구성

Describe the solution you'd like
Cloud Function 으로 재생되는 사용자의 Github 정보가 Firebase의 Realtime DB에 저장되는데,
이것과 MongoDB에서 Graphene으로 생성되는 GraphQL의 소프트웨어 도구 세부 정보 내용과 함께 사용자가 로그인 후 바로 보이는
메인 화면 UI 구성

커뮤니티 작성 UI 수정

앱 용도에 맞도록 새로운 글 작성 UI와 게시판 UI가 필요합니다.
도구를 두가지를 선택하고 비교하는 형식으로 변경할게요.

[1차 스프린트 - Subfeature] Scrapy spider 생성

This is an subissue of #10 and #11,
우리는 직접 다뤄야할 데이터가 많기 때문에 크롤러 없이는 자동으로 데이터를 가져오기 힘들기 때문에 Scrapy 사용해서 기업에서 사용하는 기술 도구를 가져오는 걸로 하고 있어.

거의 다 하기는 했지만 comment section에 남은 진행 사항 남겨도 좋을듯?

Converging Collections in MongoDB?

Scrapy에서 MongoDB collection을 하나로 합치는게 좋을거 같은데 어떻게 생각혀?

이렇게 하면 실제 데이터를 호출 시에 여러 컬렉션에서 호출을 할 필요가 없으니 실제 클라이언트 부분에서 속도 개선이 있을거 같은데
지금 생각나는 고려 사항에는,

  • 각 스파이더 파이프라인에서 하나의 컬렉션으로 UPDATE 또는 INSERT 작업 시에 일어나는 오버헤드
  • 몽고디비에서 하나의 컬렉션에 IO가 동시에 일어날 때 어떻게 처리가 되는지?
  • 비동기로 처리가 가능한지?

정도인데, 하나의 컬렉션으로 합치면 또 일어날 수 있는 문제가 어떤게 있을까?

현재는 각 도커 컨테이너가 동시에 실행되면서 각각 스파이더에 지정된 컬렉션에 데이터가 저장이 돼.

ECS문제

ECS는 AWS에서 1년 무료 사용을 지원해주지 않는거 같아
돈이 빠져나간다...

scrapy mongodb mapping

각 사이트에서 받아온 데이터에 대한 mapping을 어떻게 해야 되지요...???

github api관련 이슈입니다.

깃허브 api v4에서 제공해주는 기능중에 star한 topic을 보여주는 기능을 못찾았어요ㅠ
그래서 일단은 레포마다 존재하는 토픽을 받아오는 식으로 하려구 하는데

*** 혹시 star한 topic을 api로 받는 법을 알아낸다면 알려줄 수 있나요?? ***

firebase authentication에 관해서

github에 로그인할 때 로그인 이메일과 유저 이름이 다른 경우가 있다.
이런 경우에는 로그인 할 때 유저이름으로 로그인 해달라고 미리 UI 에서 부탁을 하면 될 거 같은데
다른 의견 있나요?

[1차 스프린트] 사용자 로그인 기능 필요

처음 사용자가 관심이 있는 기술스택을 보여주기 위해서 사용자가 Github에서 star 한 토픽에 대한 정보를 가져오려면
사용자의 깃허브 로그인이 필요해.

사용자 정보를 다룰 때에는 Firebase 를 활용하면 좋을거 같아.
Firebase SDK 에서 Auth를 참고해서 깃허브 로그인을 구현할 필요가 있어.
로그인 시 제공 되는 사용자 정보는 토큰과 함께 Firebase에서 저장하도록 하자.

[2차 스프린트] Kotlin에서 제공 받을 API 세부화

Kotlin 및 UI 부분에서 활용해야 할 DB에 있는 자료에 대한 세부 API 생성

Describe the solution you'd like

  • Graphene(GraphQL) 을 활용한 Scrapy 파이프라인에서 MongoDB 컨테이너에 저장되는 Tool 및 Company 정보
  • Firebase에서 연동 가능한 Cloud Function 및 Realtime DB 를 활용한 사용자의 Github 계정 및 우리 서비스 내의 정보

게시판 댓글 사용자 프로필 사진

Describe the bug

  • 게시판 댓글 사용자의 프로필 사진이 제대로 안나옴.
    realtime db에 comment 디렉토리에 반영되는 프로필 이미지 url 자체도 댓글 쓴 사용자의 url이 아닌
    추측이지만 댓글이 종속된 board 글을 작성한 사용자의 프로필 url 이 들어가는 거 같음.

  • board 글을 작성한 사용자 또한 프로필 사진이 current-user, 즉 현재 앱에 로그인한 사용자의 프로필 사진으로 보임

To Reproduce
Steps to reproduce the behavior:

  1. 게시판 글 작성
  2. 해당 글의 댓글 작성
  3. Firebase RTDB 확인
  4. comment/{comment-datetime+user-profile}/userphoto 답글을 쓴 사용자가 아닌 것을 확인
    4.1. 예를들어 내가 쓴 댓글의 userphoto 값이 준일이 프로필 url 값으로 되어있음
  5. 앱 내에서 board / comment 프로필 사진이 현재 viewer 의 프로필 사진으로 전체 적용된 것 확인

Expected behavior
각 사용자의 알맞게 프로필 사진 적용

Screenshots
bug1

bug2

Smartphone (please complete the following information):

  • OS: [e.g. iOS]: Android
  • 에뮬: Pixel 3 XL API30
  • Version [e.g. 22]: minSDK 21 / targetSDK 30

Scrapy하는 도중 문제 발생

키위즐 사이트를 scrapy하는 과정에서 너무 많은 호출로 인해서인지 사이트에서 접근을 막아버렸음. 키위즐 사이트에 대기업 위주로 스택들이 있어서 crawling을 시도한건데 막혀버려서 직접 기업 홈페이지에서 스택을 가져와야 할 것 같다

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.