Coder Social home page Coder Social logo

voodemsanthosh / writeme Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hpbl/writeme

0.0 0.0 0.0 16.83 MB

A tool to help developers write READMEs

Home Page: https://hpbl.github.io/WRITEME/

Dockerfile 0.02% Python 6.92% HTML 0.06% JavaScript 92.90% CSS 0.10%

writeme's Introduction

WRITEME

Helping developers write README with data-driven insights.

Python 3.6 made with Flask

This project started as my graduation project. It was built with open-source in mind, so feel free to contribute, all help is welcome.

The tool consists of a web interface where developers can obtain recommendations of sections, based on research and the most popular open-source repositories, for the READMEs they are writing.

Why

Writing a README that is effective is a problem for many developers. There isn't a official guide on how to write a README, only a bunch of opinionated blog posts.

Recent (as of 2019) research has started to analyse the content and structure of README files by mining open-source repositories on GitHub, and so obtaining a general data-driven idea of what should be expected of this sort of file.

Our tool takes advantage of these researches and builds a GUI on top of them, adding information specific to the type of project that is being documented, so the developer can have recommendations of how READMEs for this kind of project are documented today.

Running

This tool was built using Python 3.5 and Flask.

Everything is inside a docker container for ease of environment configuration.

  1. Install and run Docker.
  2. Clone the repo.
  3. Run on terminal:
    docker-compose up
  4. The API should be live on http://0.0.0.0:5000/

Front-end

Currently the front-end is not properly integrated with the back-end, but it can stand-alone for Swift READMEs. Check README for instructions.

Testing

Tests are currently on the same module as the files they test. Their names start with test_TestedFile, where TestedFile is the file being tested.

  1. Run on terminal to open the container's shell:
    docker-compose run --entrypoint sh backend
  2. Run on shell to run all tests:
    python -m unittest

Endpoints

Currently the API is static, it only serves pre-fetched Swift READMEs. The following endpoints are available:

  • To access the classified sections JSON: /sections
  • To access the classified sections JSON, grouped by heading level: /sections/level
  • To access every README in tree format: /tree

Folder Structure

  • API/:
    • config/: Configuration scripts. Sets debug mode.
    • dataProvider/: Data provider scripts. Fetches data from API or local mock.
    • model/: Model classes.
    • parser: Parsing and loading of CSV and Markdown files.
    • sectionAnalyzer: Sections grouping and analysis.
    • sectionProvider: Provides sections (currently from CSV file)
    • readmeProvider: Provides readmes in tree format (currently from local .md files)
  • containerizedModel/: Scripts related to the classifier.
  • speedTests: Tests regarding parallel requests.
  • app.py: Initializes the server.

Tool Roadmap

Back-end

  • Fetch top repos of language on GitHub.
  • Fetch README from repos.
  • Automatic classification of READMEs.
  • Grouping of classified sections.
  • Document API.
  • Deploy.

Front-end

  • Design lo-fi prototype.
  • Design UI.
  • Implement UI.
  • Consume API.
  • Secure Domain.
  • Deploy.

Research

  • Write paper

Contributors

  • Hilton Pintor @hpbl.
  • Lucas Figueiredo @lsf.
  • Ricardo Barioni @rrb.

Powered by Voxar labs.

writeme's People

Contributors

hpbl avatar rrbarioni avatar

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.