Commit 9c00a40b authored by Shashank Kumar's avatar Shashank Kumar

conflict resolved

parents 7e4002a5 a399c8af
# New Contributor Wizard - Contributors
Contributors to this project can be seen [here](https://salsa.debian.org/new-contributor-wizard-team/new-contributor-wizard/graphs/master).
#### Maintainer(s)
- [Shashank Kumar](https://shanky.xyz) - Starting GSoC 2018 as The Debian's [Project](https://summerofcode.withgoogle.com/projects/#5056989357408256)
#### Special Mention
- [Daniel Pocock](https://danielpocock.com/) - Project Idea and Mentor. Daniel came up with the brainchild which led to the formation of this application and has been guiding since the beginning to help shape the project for the betterment of the community.
- [Sanyam Khurana](https://sanyamkhurana.com) - Mentor and Code Review. Sanyam with his expertise in Python has been reviewing all the merge requests made to this application in order for the code to follow the standards and practices and developer friendly.
- [Akshay Arora](https://github.com/akshayaurora) - Core Kivy Contributor. Akshay has been a long time Kivy developer and contributor and has been helping out with the features Kivy has to offer in order to scale the application.
- [Laurens](https://www.lvh.io/about.html) - Author Crypt 101. Laurens' book on cryptography has become a reference for the Encryption modules in order to develop tools and tutorials.
This diff is collapsed.
......@@ -21,7 +21,7 @@ These documentations help developers who are willing to build this application f
#### Contributor Documentation
These documentations contains guildelines for the contributors get started with best practices to help out in contributing to this project. Checkout docs from [here](docs/contributor.md).
These documentations contains guildelines for the contributors get started with best practices to help out in contributing to this project. Checkout docs from [here](docs/contributing.md).
##### Contribute To Tools
......@@ -34,3 +34,9 @@ These documentations help end users get started with the application and describ
#### Changelogs
Changelogs for this project is based on [SemVer](https://semver.org/) or Semantic Versioning. Checkout Changelogs from [here](changelog).
### Contributors
Checkout [CONTRIBUTORS](CONTRIBUTORS.md) to know more about the awesome people behind this project.
v0.0.1
New Contributor Wizard v0.0.1
## August 7 2018
......@@ -9,6 +10,14 @@ v0.0.1
- Generic Menus added in module_box to be used in any of the course modules for Menu navigation, Tools Menu and Tutorials Menu (Shashank Kumar - realslimshanky)
- Project restructued to provide meaningful separation between course modules and other modules (Shashank Kumar - realslimshanky)
## July 26 2018
- Adding GNU GPLv3 License added to the project (Shashank Kumar - realslimshanky)
## July 20 2018
- Adding additional block in Tools and Tutorials menu to invite contributors by providing link to the project repository. (Shashank Kumar - realslimshanky)
## July 12 2018
- Adding Encryption Tutorials module (Shashank Kumar - realslimshanky)
......@@ -38,17 +47,17 @@ v0.0.1
## June 9 2018
- Added SignIn feature. (Shashank Kumar - realslimshanky)
- Added SignIn feature (Shashank Kumar - realslimshanky)
## June 7 2018
- Added SignUp feature. (Shashank Kumar - realslimshanky)
- Added SignUp feature (Shashank Kumar - realslimshanky)
## June 3 2018
- Reporting coverage while running Gitlab CI. (Shashank Kumar - realslimshanky)
- Reporting coverage while running Gitlab CI (Shashank Kumar - realslimshanky)
## June 1 2018
- Initial app setup using Kivy. (Shashank Kumar - realslimshanky)
- Integrate pylint, pytest and support for Gitlab CI. (Shashank Kumar - realslimshanky)
- Initial app setup using Kivy (Shashank Kumar - realslimshanky)
- Integrate pylint, pytest and support for Gitlab CI (Shashank Kumar - realslimshanky)
[
{"application_settings":
{
{
"application_settings": {
"tutorials": [],
"tools": []
}
},
{"blog":
{
{
"blog": {
"tutorials": [],
"tools": []
}
},
{"cli":
{
{
"cli": {
"tutorials": [],
"tools": []
}
},
{"communication":
{
{
"communication": {
"tutorials": [],
"tools": []
}
},
{"encryption":
{
{
"encryption": {
"tutorials": [
{
"title": "Encryption 101",
......@@ -51,32 +51,32 @@
]
}
},
{"how_to_use":
{
{
"how_to_use": {
"tutorials": [],
"tools": []
}
},
{"profile_settings":
{
{
"profile_settings": {
"tutorials": [],
"tools": []
}
},
{"theme_settings":
{
{
"theme_settings": {
"tutorials": [],
"tools": []
}
},
{"vcs":
{
{
"vcs": {
"tutorials": [],
"tools": []
}
},
{"way_ahead":
{
{
"way_ahead": {
"tutorials": [],
"tools": []
}
......
......@@ -77,7 +77,7 @@ So, let's say you want to add a Tool named `My Awesome Tool` with a difficulty `
"title": "My Awesome Tool",
"difficulty": "Intermediate"
}
...
...
```
## Step 5 - Adding Tool Module
......
......@@ -15,3 +15,7 @@
- Make sure the merge reqeust is atomic, ie. only trying to solve one problem at a time.
- Always write tests, documentations and changelogs (if required) with the changes you make to the project.
### Contribute To Tools
You can contribute new tools in any module of you choice. To know how visit [Contribute To Tools](contribute-to-tools.md).
......@@ -3,10 +3,19 @@ Root Kivy Application
'''
from kivy.app import App
from kivy.config import Config
from kivy.factory import Factory
from kivy.uix.boxlayout import BoxLayout
from settings import get_db_connection, installing_kivy_garden_package
class InvitingContributors(BoxLayout):
'''
InvitingContributors class has been imported from main.kv to display a block
which invites new contributors to the project
'''
class NewContributorWizard(App):
'''
Declaration of Root Kivy App which contains Root Widget
......@@ -24,6 +33,7 @@ class NewContributorWizard(App):
'''
self.root.clear_widgets()
self.root.add_widget(Dashboard())
Factory.register('InvitingContributors', cls=InvitingContributors)
if __name__ == '__main__':
......
......@@ -2,13 +2,16 @@
Modules containing Communication classes
'''
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/communication.kv')
from modules.module_box.module_box import ModuleBox
class Communication(BoxLayout):
'''
Communication class for tutorials and tools
'''
def __init__(self, **kwargs):
super(Communication, self).__init__(**kwargs)
self.module_box = ModuleBox("communication")
self.add_widget(self.module_box)
......@@ -4,7 +4,6 @@ Modules containing How To Use classes
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/how_to_use.kv')
......
......@@ -2,13 +2,16 @@
Modules containing Version Control System classes
'''
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/vcs.kv')
from modules.module_box.module_box import ModuleBox
class VCS(BoxLayout):
'''
VCS class for tutorials and tools
'''
def __init__(self, **kwargs):
super(VCS, self).__init__(**kwargs)
self.module_box = ModuleBox("vcs")
self.add_widget(self.module_box)
......@@ -2,13 +2,16 @@
Modules containing Way Ahead classes
'''
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/way_ahead.kv')
from modules.module_box.module_box import ModuleBox
class WayAhead(BoxLayout):
'''
WayAhead class for tutorials and tools
'''
def __init__(self, **kwargs):
super(WayAhead, self).__init__(**kwargs)
self.module_box = ModuleBox("way_ahead")
self.add_widget(self.module_box)
......@@ -18,9 +18,6 @@ from modules.course_modules.encryption.encryption import Encryption
from modules.course_modules.how_to_use.how_to_use import HowToUse
from modules.course_modules.vcs.vcs import VCS
from modules.course_modules.way_ahead.way_ahead import WayAhead
from modules.settings.application import ApplicationSettings
from modules.settings.profile import ProfileSettings
from modules.settings.theme import ThemeSettings
Builder.load_file('./ui/dashboard.kv')
......
......@@ -4,8 +4,9 @@ Modules containing Tools classes for Abstraction
import json
from importlib import import_module
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.factory import Factory
from kivy.uix.boxlayout import BoxLayout
Builder.load_file('./ui/module_box/tools.kv')
......@@ -47,6 +48,7 @@ class ModuleToolsMenu(BoxLayout):
tool_key = '_'.join(tool['title'].lower().split())
self.all_tools[tool_key] = tool
self.populate_tools_menu()
self.ids['module_tools_menu'].add_widget(Factory.InvitingContributors())
def populate_tools_menu(self):
'''
......
......@@ -4,8 +4,9 @@ Modules containing Tutorials classes for Abstraction
import os
import json
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.factory import Factory
from kivy.uix.boxlayout import BoxLayout
from modules.parsers import tutorial_parser
......@@ -49,6 +50,7 @@ class ModuleTutorialsMenu(BoxLayout):
tutorial_key = '_'.join(tutorial['title'].lower().split())
self.all_tutorials[tutorial_key] = tutorial
self.populate_tutorials_menu()
self.ids['module_tutorials_menu'].add_widget(Factory.InvitingContributors())
def populate_tutorials_menu(self):
'''
......
'''
Modules containing Application Settings classes
'''
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/application_settings.kv')
class ApplicationSettings(BoxLayout):
'''
ApplicationSettings class for settings related to New
Contributor Wizard application
'''
'''
Modules containing Profile Settings classes
'''
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/profile_settings.kv')
class ProfileSettings(BoxLayout):
'''
ProfileSettings class for settings related to signed in user
'''
'''
Modules containing Theme Settings classes
'''
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/theme_settings.kv')
class ThemeSettings(BoxLayout):
'''
ThemeSettings class for settings related to Theme of application
'''
<ApplicationSettings>:
orientation: 'vertical'
canvas.before:
Color:
rgba: 1, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
Label:
text: 'Application'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
color: 0, 0, 0, 1
Label:
text: 'Settings'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
color: 0, 0, 0, 1
<Blog>:
Label:
text: 'Blog'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
\ No newline at end of file
<CLI>:
orientation: 'vertical'
Label:
text: 'Command'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
Label:
text: 'Line'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
Label:
text: 'Inteface'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
\ No newline at end of file
<Communication>:
Label:
text: 'Communication'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
\ No newline at end of file
......@@ -103,15 +103,6 @@
Screen
name: 'way_ahead_screen'
WayAhead
Screen
name: 'application_settings_screen'
ApplicationSettings
Screen
name: 'profile_settings_screen'
ProfileSettings
Screen
name: 'theme_settings_screen'
ThemeSettings
<MenuButton@ButtonBehavior+BoxLayout>
size_hint: 1, 0.142
......
......@@ -28,3 +28,32 @@ BoxLayout
font_size: dp(50)
padding_x: dp(10)
halign: 'left'
# To be imported inside Tools or Tutorials of any module
<InvitingContributors>
orientation: 'vertical'
padding: (20, 20, 20, 20)
size_hint_y: None
height: 150
canvas.before:
Color
rgba: 0, 0, 0, 1
RoundedRectangle
pos: self.pos
size: self.size
Label
id: inviting_contributors_box_title
text_size: self.width, None
size: self.texture_size
text: 'You can contribute Tools or Tutorials for this application by visting [ref=https://salsa.debian.org/new-contributor-wizard-team/new-contributor-wizard][color=0000ff]New Contributor Wizard[/color][/ref]\'s repository'
markup: True
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 20
line_height: 1
color: 1, 1, 1, 1
halign: 'justify'
valign: 'top'
on_ref_press:
import webbrowser
webbrowser.open(args[1])
<ProfileSettings>:
orientation: 'vertical'
canvas.before:
Color:
rgba: 1, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
Label:
text: 'Profile'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
color: 0, 0, 0, 1
Label:
text: 'Settings'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
color: 0, 0, 0, 1
\ No newline at end of file
<ThemeSettings>:
orientation: 'vertical'
canvas.before:
Color:
rgba: 1, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
Label:
text: 'Theme'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
color: 0, 0, 0, 1
Label:
text: 'Settings'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
color: 0, 0, 0, 1
<VCS>:
orientation: 'vertical'
Label:
text: 'Version'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
Label:
text: 'Control'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
Label:
text: 'System'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
<WayAhead>:
Label:
text: 'Way Ahead'
font_name: 'ui/assets/fonts/VarelaRound-Regular.ttf'
font_size: 50
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment