Abstract
GitHub is a software development platform that facilitates collaboration and participation in project development. Typically, developers search for relevant projects in order to reuse functions and identify useful features. Recommending suitable projects for developers can save their time. However, finding suitable projects among many projects on GitHub is difficult. In addition, different users may have different requirements. A recommendation system would help developers by reducing the time required to find suitable projects. In this paper, we propose an approach to recommend projects that considers developer behaviors and project features. The proposed approach automatically recommends the top-N most relevant software projects. We also integrate user feedback to improve recommendation accuracy. The results of an empirical study using data crawled from GitHub demonstrate that the proposed approach can efficiently recommend relevant software projects with relatively high precision.
Article PDF
Similar content being viewed by others
References
Sun X B, Yang H, Xia X, et al. Enhancing developer recommendation with supplementary information via mining historical commits. J Syst Softw, 2017, 134: 355–368
Sun X B, Li B, Duan Y C, et al. Mining software repositories for automatic interface recommendation. Sci Program, 2016, 2016: 5
Zhang L X, Zou Y Z, Xie B, et al. Recommending relevant projects via user behaviour: an exploratory study on GitHub. In: Proceedings of the 1st International Workshop on Crowd-based Software Development Methods and Technologies, Hong Kong, 2014. 25–30
Zhang Y, Lo D, Singh K P, et al. Detecting similar repositories on GitHub. In: Proceedings of the 24rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), Klagenfurt, 2017. 13–23
Jiang J, Lo D, He J H, et al. Why and how developers fork what from whom in GitHub. Empir Softw Eng, 2017, 22: 547–578
McMillan C, Grechanik M, Poshyvanyk D. Detecting similar software applications. In: Proceedings of the 34th International Conference on Software Engineering, Piscataway, 2012. 364–374
Sun W S, Sun X B, Yang H, et al. WB4SP: a tool to build the word base for specific programs. In: Proceedings of the 24th IEEE International Conference on Program Comprehension, Austin, 2016
Hu J J, Sun X B, Lo D, et al. Modeling the evolution of development topics using dynamic topic models. In: Proceedings of the 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering, Montreal, 2015. 3–12
Thung F, Lo D, Jiang L X. Detecting similar applications with collaborative tagging. In: Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM), Trento, 2012. 600–603
Yang C, Fan Q, Wang T, et al. Repolike: personal repositories recommendation in social coding communities. In: Proceedings of the 8th Asia-Pacific Symposium on Internetware 2016, Beijing, 2016. 54–62
Wang J, de Vries A P, Reinders M. Unifying user-based and item-based collaborative filtering approaches by similarity fusion. In: Proceedings of the 29th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, Seattle, 2006. 501–508
Kirkpatrick S, Gelatt C D, Vecchi M P. Optimization by simulated annealing. In: Readings in Computer Vision: Issues, Problems, Principles, and Paradigms. San Francisco: Morgan Kaufmann Publishers, 1983. 671–680
Sun X B, Liu X Y, Hu J J, et al. Empirical studies on the NLP techniques for source code data preprocessing. In: Proceedings of the 3rd International Workshop on Evidential Assessment of Software Technologies, Nanjing, 2014. 32–39
XuW Y, Sun X B, Hu J J, et al. REPERSP: recommending personalized software projects on GitHub. In: Proceedings of 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME), Shanghai, 2017. 648–652
Zhao Z, Shang M. User-based collaborative-filtering recommendation algorithms on Hadoop. In: Proceedings of the 3rd International Conference on Knowledge Discovery and Data Mining, Phuket, 2010. 478–481
Sarwar B, Karypis G, Konstan J, et al. Item-based collaborative filtering recommendation algorithms. In: Proceedings of the 10th International Conference on World Wide Web, Hong Kong, 2001. 285–295
Xu W Y, Sun X B, Xia X, et al. Scalable relevant project recommendation on GitHub. In: Proceedings of the 9th Asia-Pacific Symposium on Internetware, Shanghai, 2017
Blincoe K, Sheoran J, Goggins S, et al. Understanding the popular users: following, affiliation influence and leadership on GitHub. Inf Softw Tech, 2016, 70: 30–39
Ray B, Posnett B, Filkov V, et al. A large scale study of programming languages and code quality in GitHub. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, Hong Kong, 2014. 155–165
Acknowledgements
This work was supported partially by National Natural Science Foundation of China (Grant Nos. 61472344, 61611540347, 61402396), Open Project Foundation of Information Technology Research Base of Civil Aviation Administration of China (Grant No. CAAC-ITRB-201704), Jiangsu Qin Lan Project, the China Postdoctoral Science Foundation (Grant No. 2015M571489), Open Funds of State Key Laboratory for Novel Software Technology of Nanjing University (Grant No. KFKT2016B21), and Natural Science Foundation of Yangzhou City (Grant No. YZ2017113).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Sun, X., Xu, W., Xia, X. et al. Personalized project recommendation on GitHub. Sci. China Inf. Sci. 61, 050106 (2018). https://doi.org/10.1007/s11432-017-9419-x
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s11432-017-9419-x