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
GitHub.
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
GHTorrent
MongoDB BSON dumps into the DevMine database.
Languages parsers are used to parse source code repositories and
produce an extended custom abstract syntax tree as JSON, as defined
by srcanlzr
.
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 srctool
.
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
for now).
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.