DevMine aims at providing a search engine for enterprises, organizations or projects looking for software developers having a set of skills that matches their requirements.
To achieve this goal, developers metadata analysis is performed, leveraging content from platforms such as GitHub.
Of course, analyzing only such platforms metadata would not be sufficient to evaluate developers skills. Hence, source code analysis is performed as well to evaluate code quality based on open source contributions.
crawld is a data crawler and source code repository
fetcher. It is able to crawl metadata about source code repositories
and developers from websites such as
All data is then stored into a database. Along with the metadata, it
is able to clone repositories source code for further analysis.
ght2dm is a command line tool to import
MongoDB BSON dumps into the DevMine database.
srccat is a tool that concatenates source code files
from repositories into large tar archives, suitable to store on
HDFS for further processing with
Languages parsers are used to parse source code repositories and
produce an extended custom abstract syntax tree as JSON, as defined
srctool is a command line tool to manage source code
parsers. It is able to download parsers from a web server, install
them and run them.In short, it is a manager for source code parsers.
repotool is a command line tool that aggregates source
code repositories metadata (such as VCS type, commits and so on) in
order to add it to the JSON files produced by
srcanlzr is a source code analyzer. It analyzes a
generic JSON representation of the source code, as generated by
a source code language parser (only Go and Java parsers exist
fluxio is a command line tool to insert JSON data
from its standard input into a PostgreSQL 9.4+ jsonb store and which
can also output JSON from the database to its standard output.
featscomp computes features from source code
data and developers metadata. A feature in the context of the
DevMine project is something like the proficiency of a user in a
certain programming language or paradigm, a developer reputation on
GitHub and so on.
devmine is the API server. It provides a JSON RESTful
API to provide information computed by various DevMine sub-projects.
It is also able to answer queries to rank and filter
developers according to some user queries. Say a user wants to find
a good Go developer with some experience in Java and functional
programming as well,
devmine is able to provide an
answer to that.
webapp is a web front-end to the API server. More
precisely, it allows users to actually query the API server using
an intuitive, user-friendly interface.