Difference between revisions of "GSOC2019AppStore"

From Nsnam
Jump to: navigation, search
Line 11: Line 11:
 
* '''Mentors:''' [mailto:adadeepak8@gmail.com Ankit Deepak], [mailto:abhijithabhayam@gmail.com Abhijith Anilkumar]
 
* '''Mentors:''' [mailto:adadeepak8@gmail.com Ankit Deepak], [mailto:abhijithabhayam@gmail.com Abhijith Anilkumar]
  
* '''Abstract:''' The goal of the project is to link the existing app store with bake build system and improve the AppStore. The project aims to support command line installation and updation of modules. Once this project is complete, ns-3 users will be able to install a module on AppStore from the command line.  
+
* '''Abstract:''' The goal of the project is to link the existing app store with the bake build system and improve the AppStore. The project aims to support command line installation and update of modules. Once this project is complete, ns-3 users will be able to install a module on AppStore from the command line.  
  
 
* '''Code:''' to be added
 
* '''Code:''' to be added
Line 17: Line 17:
 
* '''Documentation:''' to be added
 
* '''Documentation:''' to be added
  
* '''About Me:''' I am a 3rd year Computer Science undergraduate student from National Institute of Technology Karnataka (NITK), Surathkal, India. I have worked to implement [https://github.com/mishal23/Implementation-of-TCP-New-Vegas-in-ns3/ TCP New Vegas] in ns-3. I have about 1.5 years of experience in Python and Django.
+
* '''About Me:''' I am a 3rd-year Computer Science undergraduate student from National Institute of Technology Karnataka (NITK), Surathkal, India. I have worked to implement [https://github.com/mishal23/Implementation-of-TCP-New-Vegas-in-ns3/ TCP New Vegas] in ns-3. I have about 1.5 years of experience in Python and Django.
  
 
= Technical Approach =
 
= Technical Approach =
 +
The App Store is built using the Django framework. The primary aim is to link the AppStore with bake which would require setting up REST API to the existing codebase for install/update/latest version of the modules, [https://www.django-rest-framework.org/ django-rest-framework] will be used for the same. It was found out that the AppStore is built on Python2.7 and since the support is going to end in 2020, the first step of the project will be to port the AppStore codebase to the latest version of Python and Django. The REST APIs made would be used to add the command line support of install and update to bake. Later to enhance the features of the AppStore, GitHub and GitLab OAuth will be added, download statistics for each of the modules will be added. Later to support Multi-Threaded Comments, [https://disqus.com/ disqus] will be used and the rating UI will be revamped using the [https://github.com/wildfish/django-star-ratings django-star-ratings] library. A detailed description of the project is available [https://docs.google.com/document/d/1AnTbOZlEN6RLyGtxfRS2KsiMvF4oLnQKlQuxiNMbWr8/edit?usp=sharing here]
  
 
= Milestones and Deliverables =
 
= Milestones and Deliverables =
  
The entire GSoC period is divided into 3 phases. The deliverable at the end of each phase is as mentioned below  
+
The entire GSoC period is divided into 3 phases. The deliverable at the end of each phase is as mentioned below:
  
 
===Phase 1===
 
===Phase 1===
* Refactoring the exisiting code and port existing code to Python 3 and the latest version ofDjango
+
* Refactoring the existing code and port existing code to Python 3 and the latest version of Django
* REST APIs for install and latest version of the extension for the bake buildsystem
+
* REST APIs for install and latest version of the extension for the bake build system
 
* Add install option to the bake build system
 
* Add install option to the bake build system
  
Line 36: Line 37:
  
 
===Phase 3===
 
===Phase 3===
* Multi Threaded Comment using Disqus
+
* Multi-Threaded Comment using Disqus
 
* Dependency Management
 
* Dependency Management
 
* Ratings for the extensions on the AppStore
 
* Ratings for the extensions on the AppStore
  
 
= Weekly Reports =
 
= Weekly Reports =

Revision as of 08:43, 11 May 2019

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

Return to GSoC 2019 Projects page.

Project overview

  • Project name: Improving the ns-3 AppStore and linking with bake
  • Abstract: The goal of the project is to link the existing app store with the bake build system and improve the AppStore. The project aims to support command line installation and update of modules. Once this project is complete, ns-3 users will be able to install a module on AppStore from the command line.
  • Code: to be added
  • Documentation: to be added
  • About Me: I am a 3rd-year Computer Science undergraduate student from National Institute of Technology Karnataka (NITK), Surathkal, India. I have worked to implement TCP New Vegas in ns-3. I have about 1.5 years of experience in Python and Django.

Technical Approach

The App Store is built using the Django framework. The primary aim is to link the AppStore with bake which would require setting up REST API to the existing codebase for install/update/latest version of the modules, django-rest-framework will be used for the same. It was found out that the AppStore is built on Python2.7 and since the support is going to end in 2020, the first step of the project will be to port the AppStore codebase to the latest version of Python and Django. The REST APIs made would be used to add the command line support of install and update to bake. Later to enhance the features of the AppStore, GitHub and GitLab OAuth will be added, download statistics for each of the modules will be added. Later to support Multi-Threaded Comments, disqus will be used and the rating UI will be revamped using the django-star-ratings library. A detailed description of the project is available here

Milestones and Deliverables

The entire GSoC period is divided into 3 phases. The deliverable at the end of each phase is as mentioned below:

Phase 1

  • Refactoring the existing code and port existing code to Python 3 and the latest version of Django
  • REST APIs for install and latest version of the extension for the bake build system
  • Add install option to the bake build system

Phase 2

  • Add update option to the bake build system
  • Add GitLab/Github OAuth support to AppStore
  • Statistics (download count) for each the extension

Phase 3

  • Multi-Threaded Comment using Disqus
  • Dependency Management
  • Ratings for the extensions on the AppStore

Weekly Reports