Commit ed4eaebf authored by Shashank Kumar's avatar Shashank Kumar

conflict resolved

parents 762cc506 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 Tutorials
......@@ -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
## August 7 2018
- Adding `Contribute To Tutorials` documentation (Shashank Kumar - realslimshanky)
......@@ -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": []
}
......
......@@ -8,7 +8,7 @@ Make sure you follow [Developer](developer.md) docs to build the application fro
## Step 2 - Updating Tutorial Index
The way the project is structured there are two places where you'll have to either modify a JSON file or add a new JSON file to create Tutorial They are
The way the project is structured there are two places where you'll have to either modify a JSON file or add a new JSON file to create Tutorial. They are:
- `data/module_data.json` is the file which acts as the index of all the Tutorials present inside the application. You'll have to first mention your tutorial here. For example, if you want to add a tutorial to Encryption module, you first find out the entry for `encryption` key (i.e. the module name itself in lower case) which looks like
......@@ -60,7 +60,7 @@ Here, you can see there's already a Tutorial listed. Similarly, list your own tu
"difficulty": "Beginner"
}
],
...
...
```
So, your tutorial should be listed using `{}` with two compulsory key value pair. First, `title` key, whose value should be the Title of your Tutorial. And second, `difficulty` key, whose value should be set to either `Begineer`, `Intermediate` or `Advance`. This is the only requirement in order to list your tutorial.
......@@ -146,7 +146,7 @@ A simple Text can be added to Lesson by using the following code
}
]
},
...
...
```
This will result in
......@@ -169,7 +169,7 @@ Adding an image is just as simple like adding a text. Simply use below code to k
}
]
},
...
...
```
This will result in
......@@ -192,7 +192,7 @@ Code snippets can also be added to Lesson which can be copied easily right from
}
]
},
...
...
```
This will result in
......@@ -217,7 +217,7 @@ Now this one is a little advance content type that the others. Let's first use t
}
]
},
...
...
```
This is how the question will be displayed
......@@ -275,7 +275,6 @@ Also, below is the example of how you can add multiple content to a single lesso
]
}
]
```
![Screencast](https://salsa.debian.org/new-contributor-wizard-team/new-contributor-wizard/uploads/ae5d3653fe39b2243c28234f1e6eace1/finalstep.mp4)
......
......@@ -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 Blog classes
'''
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file('./ui/blog.kv')
from modules.module_box.module_box import ModuleBox
class Blog(BoxLayout):
'''
Blog class for tutorials and tools
'''
def __init__(self, **kwargs):
super(Blog, self).__init__(**kwargs)
self.module_box = ModuleBox("blog")
self.add_widget(self.module_box)
......@@ -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