Difference between revisions of "GSOC2017AppStore"

From Nsnam
Jump to: navigation, search
(Community Bonding Period (May 5-30))
(Technical Approach)
Line 22: Line 22:
  
 
The App Store will be created using Django framework, based on the [http://apps.cytoscape.org/ Cytoscape App Store]. The primary aim will be to modify the Cytoscape code to support ns-3 requirements. It was found out that the Django dependencies used by the Cytoscape code are outdated. The Django version being used there is also an old one. The first step in the project will be to create a clone of the App Store that meets ns-3 requirements. Cytoscape app store lets users upload the .jar files directly to the site and it verifies the app in the backend. ns-3 modules does not follow this system and hence the system needs modifications. Considering these differences, a new Django web application will be created that supports ns-3 requirements, reusing maximum amount of code possible from Cytoscape. The web application will be deployed using Apache servers alongside the existing Wordpress instance. The application will be kept separate during development and it will be merged once complete. Detailed description of the project is available [https://docs.google.com/document/d/1zhRC5udyNJjtcyUzk7pLQargtjiv8XSIYBSKP4PDzS8/edit here]
 
The App Store will be created using Django framework, based on the [http://apps.cytoscape.org/ Cytoscape App Store]. The primary aim will be to modify the Cytoscape code to support ns-3 requirements. It was found out that the Django dependencies used by the Cytoscape code are outdated. The Django version being used there is also an old one. The first step in the project will be to create a clone of the App Store that meets ns-3 requirements. Cytoscape app store lets users upload the .jar files directly to the site and it verifies the app in the backend. ns-3 modules does not follow this system and hence the system needs modifications. Considering these differences, a new Django web application will be created that supports ns-3 requirements, reusing maximum amount of code possible from Cytoscape. The web application will be deployed using Apache servers alongside the existing Wordpress instance. The application will be kept separate during development and it will be merged once complete. Detailed description of the project is available [https://docs.google.com/document/d/1zhRC5udyNJjtcyUzk7pLQargtjiv8XSIYBSKP4PDzS8/edit here]
 +
 +
==Web Application==
 +
 +
The frontend of the web application will be designed using [http://getbootstrap.com/ Bootstrap]. The design will be integrated using the MTV(Model Template View) architecture of Django. Bootstrap will be integrated with Django templates.
 +
The backend of the web application will be Django Models and Views, created in Python. The App Store will be built on top of [https://django-edge.readthedocs.io/en/latest/ Django Edge] which provides features like user profiles, accounts and bootstrap-enabled admin pages. SQLite(Default Django Database) will be used for development. For production, PostgreSQL will be used.
 +
During the development phase, the default Python server will be used. To test the webapp in production, the website will be run using nginx and gunicorn. To make it available for public use, the web application will be integrated with the current ns-3 website.
  
 
= Milestones and Deliverables =
 
= Milestones and Deliverables =

Revision as of 14:36, 31 May 2017

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 2017 Accepted Projects page.

Project overview

  • Project name: ns-3 App Store
  • Abstract: The goal of the project is to create an app store for contributed ns-3 modules. The project aims to support modularization of the ns-3 codebase and federation of development activities. Once this project is complete, ns-3 users will be able to download modules depending on their requirements. Developers will be able to upload new modules once it is approved by the maintainers.
  • About me: I am a 4th year Computer Science undergraduate student from National Institute of Technology Karnataka (NITK), Surathkal, India. I am an open source enthusiast and have about 3 years experience of intensive programming in Python and Django. I had been working in ns-3 for the past few months on Rate Adaptation Algorithms (RAA) in ns-3.

Technical Approach

The App Store will be created using Django framework, based on the Cytoscape App Store. The primary aim will be to modify the Cytoscape code to support ns-3 requirements. It was found out that the Django dependencies used by the Cytoscape code are outdated. The Django version being used there is also an old one. The first step in the project will be to create a clone of the App Store that meets ns-3 requirements. Cytoscape app store lets users upload the .jar files directly to the site and it verifies the app in the backend. ns-3 modules does not follow this system and hence the system needs modifications. Considering these differences, a new Django web application will be created that supports ns-3 requirements, reusing maximum amount of code possible from Cytoscape. The web application will be deployed using Apache servers alongside the existing Wordpress instance. The application will be kept separate during development and it will be merged once complete. Detailed description of the project is available here

Web Application

The frontend of the web application will be designed using Bootstrap. The design will be integrated using the MTV(Model Template View) architecture of Django. Bootstrap will be integrated with Django templates. The backend of the web application will be Django Models and Views, created in Python. The App Store will be built on top of Django Edge which provides features like user profiles, accounts and bootstrap-enabled admin pages. SQLite(Default Django Database) will be used for development. For production, PostgreSQL will be used. During the development phase, the default Python server will be used. To test the webapp in production, the website will be run using nginx and gunicorn. To make it available for public use, the web application will be integrated with the current ns-3 website.

Milestones and Deliverables

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

Phase 1

  • Django web application for ns-3 App Store with basic requirements
  • Deploy the application on a test server
  • Make url available for developers to get feedback

Phase 2

  • Feedback and ratings feature
  • Bake integration
  • Documentation and tutorials update

Phase 3

  • Extensive testing
  • Integrate documentation of separate modules to the main site
  • Make url available for public users

Weekly Reports

Community Bonding Period (May 5-30)

A detailed design for the App Store has been created, which will be followed in the coding phase. The design can be found here.