Git Product home page Git Product logo

wye's Introduction

Deploy

Build StatusCoverage Status Gitter Scrutinizer Code Quality Code Health

Wye is a software that connects colleges and organizations looking to conduct workshops on various FOSS based technologies with experienced professionals to help students learn the programming language along with the real time usage in different domains.

It is a web application built using python and Django.

PythonExpress (https://pythonexpress.org) is used for Python and related technologies and it is deployed using wye project.

wye is pronounced as #Y

How to setup

(If you need detailed step-by-step guide, read the documentation here)

  • Create a PostgreSQL 9.3 database
  • It is advised to install all the requirements inside virtualenv, use virtualenvwrapper to manage virtualenvs.
cp settings/dev.sample.py settings/dev.py
createdb wye
pip install -r requirements/dev.txt
python manage.py migrate
python manage.py sample_data
python manage.py runserver

Testing

It's highly encouraged that you write test for any new feature/bug fixes. Find all the existing test inside tests/ folder. To run the test locally, run the following command:

py.test

You can invoke py.test with various command line arguments, that can drastically improve your test writing/running experience. Read useful tip/tricks at docs/testing.md.

Login Details

Email: [email protected] Password: 123123

Making Frontend Changes

Make sure you have nodejs & npm installed

$ npm install
$ gulp   // This starts a watcher to watch for file changes

Community

Contributing

  1. Choose an issue and ask any doubts in the issue thread.
  2. Report any bugs/feature request as github new issue, if it's already not present.
  3. If you are starting to work on an issue, please leave a comment saying "I am working on it".
  4. Once you are done with feature/bug fix, send a pull request according to the guidelines.

License

This software is licensed under The MIT License(MIT). See the LICENSE file in the top distribution directory for the full license text.

wye's People

Contributors

anant-dev avatar aniketmaithani avatar ankur0493 avatar ashishjain28 avatar ayushkesar avatar bhanuvrat avatar chillaranand avatar curioswati avatar deshraj avatar farcaz avatar fatemasaifee avatar gnurenga avatar harisibrahimkv avatar iammrinal0 avatar juggernaut451 avatar kracekumar avatar lavish205 avatar mascot6699 avatar praseetha-kr avatar shankisg avatar shubhamgupta2021 avatar sourabhtk37 avatar stalwart201 avatar sudshekhar avatar taranjeet avatar thefourtheye avatar theskumar avatar ultimatecoder avatar vigneshsarma avatar vnbang2003 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wye's Issues

Admin landing page

In the Page
Admin should see total workshop with different status(Pagination: 10)
Admin Should see total conference with different region(Pagination: 10)
Admin should see button where he can send email to by button click(Requester/Accepted) who haven't shared feedback to workshop conducted.
Admin should be add new regional leads(State wise)

Workshop feedback page

We need to have in place feedback mechanism it should be mandatory for organisation and tutor to share feedback.
Organisation shouldn't be allowed to request next workshop if they don't share feedback for previous conducted workshop.
Tutor shouldn't be allowed to take up next request until he give feedback to previous workshop.

User Landing Page

Once user login we need to display dashboard with based on usertype.
System has 4 types of user

  1. Tutor: In tutor landing page we should display list of workshop request(not accepted) where they shared interest to conduct workshop.Button to provide feedback for completed workshop
  2. Regional Lead: Visit #13 to find details
  3. College POC: He should be able to see who all belong to his organization. workshop requested/accepted . button to provide feedback for completed workshop
    4)Admin : Visit #14 to find details

If the profile of user is not created we will have usertype empty hence we need to redirect him to fill the profile as mandatory.
If user has filled profile we need to show the content as described in tickets #13 , #14 ,
I will add details for Tutor and College POC in few days.

Email alert for each step of workshop

Once we have workshop request in the system.

Requested:

  1. we should send automatic emails to all tutor who have shared their interest to conduct workshop of that region.
  2. The email should also be sent to regional leads to understand activity happening.
  3. Email should be sent to requester saying " we are working on find volunteering for requested workshop"

#Accepted
1) we should send automatic emails to tutor and members who have shared their interest to conduct workshop of that region saying" x person has accepted the request"
2) The email should also be sent to regional leads to understand activity happening.
3) Email should be sent to requester saying " x person has shown interested to conduct workshop and share email/phone number of the tutor"

Decline

  1. The email should also be sent to regional leads to understand activity happening.
  2. Email should be sent to requester saying " We are not able to find the volunteers for x region but will try to find volunteer who can come soon and conduct workshop there"

completed

  1. The tutor or requester should provide feedback on how workshop happened. The admins team will then close depending on the feedback given.

New Workshop default state and Emails

When user request for workshop by default Workshop should be either in Draft and Requested.
With the existing form we should not display (1) Is_active.
Date Fields format need to display for user to enter. (Preferred to use calendar widget)
It should also send emails to admins, POC and requester.

ModelAdmin class for each model

For each model, there should be a ModelAdmin class, which will include important fields like
list_per_page, list_display, exclude, list_display_links, search_fields, list_filter.

Fix string formatting issue for __str__ function in workshops/models

For workshops models the str function have string formatting issue.

For example str function for WorkshopLevel model is as below

def __str__(self):
    return '{}' % (self.name)

To fix this issue we need to use .format, sample below

def __str__(self):
    return '{}'.format(self.name)

While working on issue #7 , I will fix this.

Regional POC landing page

In his page
He should be seeing workshop accepted, pending .
He should also being stat number of tutor who expressed interest to conduct workshop in his region. Organization belonging to his region.

Generate sample data

Not able to create workshop/organisation, as Requester, Location, Workshop section are choice fields and they don't have default values.

Workshop Withdrawl

We should allow requester to withdraw workshop(Move to draft position). Once requester withdraw we need to unassign workshop from presenter and send email on the change in workshop status.
While he withdraw workshop we need to force user to provide reason for withdrawal of workshop.

Login with username or email

When sample data is generated, it creates superuser admin/123123.
But we cant login to wye using username.

It is better if we allow login with username or email in general.

docs: Describe wye

How is it pronounced? Ans: Y
Why it is named wye? Ans: as it works as connector to Organization and Python community.
A brief description about project.: Will do in few days

Align forms fields

Some fields in workshop/organisation creation forms are left aligned and some fields are right aligned.

w1

Testing Layout

We need to enable testing layout for this project.
Plan is to use pytest

Workshop listing page

We need workshop listing page more detailed information with different sections in it.
I have added 4 variable defining what am looking us.
@shankisg Can you work on this as you have control on app better ?

When we login with local credtinals it throws error.

Once we entered login details it throwing below error.

AttributeError at /accounts/login/

'tuple' object has no attribute 'encode'

Request Method: POST
Request URL: http://localhost:8000/accounts/login/
Django Version: 1.8.5
Exception Type: AttributeError
Exception Value:

'tuple' object has no attribute 'encode'

Exception Location: /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/smtplib.py in login, line 641

UI: Add Navigation breadcrumb

We need to add breadcrumbs section in the system so user know which page is in and can go back other pages easily.

Signup using non-social accounts(based on EmailVerification )

We should allow end users to register using personal email-ids as they are good chance institute will have their own email server which are not linked to Social accounts.

We should use Emailverificaiton system to validate users.
This task as to go in-hands with Ticket #3

Disable E125 for flake8

While validating code using flake8, for code block below it throws *E125 continuation line does not distinguish itself from next logical line
*
, can we disable it.

class WorkshopToggleActive(
    views.LoginRequiredMixin, views.CsrfExemptMixin,
    views.JSONResponseMixin, generic.UpdateView):

Contact us page

We need to add form with below fields

  1. Email Id
  2. Phone number
    3)Dropdown with option (Profile, Workshop, Organisation and others)
  3. Text Box

Once user click on submit button it should send email to admins and Regional Leads with form details.

Worskshop life Cycle

Each workshop request needs to go through below state

  1. requested(when new request is done)
  2. accepted(when user/tutor accept it)
  3. declined(if not resource available)
  4. completed(Feedback is shared hence we say it completed)

Enable travis to run on this project

@vnbang2003 can you please enable travis for this project, so the failing test are visible during PR. Also, it would be nice we can encourage people to write test for the features they are submitting. It really become a pain point to write test later in the development cycle.

Incorporate UserType creation in sample_data.py

I feel so get started with the flow of user redirection after login UserType creation is necessary for all. Though there is a comment as to what values will go in it. IMO it would be better to incorporate the UserType creation in sample_data.py script so it can be setup at start. This will allow smooth functioning once the flow in integrated. Also I see email being sent to by querying the user for their type which cannot be done right now.

I suggest this

Display Name Slug
Tutor tutor
Regional Lead regional_lead
College POC poc
Admin admin

Considering all UserType as active which is default.

Profile display page

Plan is to create a profile page which will function like facebook and github.
example:
github: github.com/pyconindia(Personal)
facebook: facebook.com/PyConIndia(Orgnaisation)

By default page is public but user can choose to make it private by making settings.
This page basically contains details on number of workshop requested, conducted and how activate user is and all. It should also show area of preference and etc.

Double requirement given

In base.txt, there is a double requirement given for djangorestframewrok and django-filter. The following snippet shows this

djangorestframework==3.2.3
django-filter==0.10.0
django-allauth==0.23.0
djangorestframework==3.2.4
django-filter==0.11.0

I think for both the higher version should be used.

Organisation create/update

If the user type is Organization we should show button "Add organization". User can update organization details.
If the user type is POC, they can add organization with all the detail and POC become requester.

Home page to display gird to show stats

In the home page we need to display gird showing number of organization registered, workshop completed, Tutor registered. In future we will have student register and etc.
There are two section for this feature

  1. Design the Grid in home page
  2. Write query to get this count from the system.

@Praseetha-KR Can you help us with first point ?

Profile Creation/Update page

We need to have profile page where user will share additional details like twitter, GitHub,Phone and etc details.
We have 2 set of user

  1. Organization: They should share details about college, location, Department, positions etc
  2. Tutor: They need to share their experience level, Preferred location where can conduct workshops.
    Tutor also need to choose from set of predefined workshop where all he is comfortable.

FAQ/help page

We should add static page which explain how to use the system.
Probably ReadMe page will do but add it a placeholder for now.

twiiter buzz

When new workshop request is made we need to automatic tweet using pythonexpress twitter account.

Partnership page

We should add contact page where Open source Organizations can send request for Partnership.
This emails should be sent to admins.

Regional Page UI Changes

We need to better show the regional lead page. Attached is screenshot showing present state.
This page is visible only if user is admin
@Praseetha-KR : Some more help here ?
screen shot 2015-10-23 at 8 44 42 am

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.