Code Monkey home page Code Monkey logo

oschub's People

Contributors

allcontributors[bot] avatar bhargavd2 avatar dat-adi avatar dependabot[bot] avatar mahesh-11102 avatar oscvitap avatar saipranay47 avatar sudhee-bsp avatar svijayb avatar thekodeking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

oschub's Issues

User Registration

the eventdetail.html will have reg button to register user for the event
and to save the details in eventuserdata

Template extension using base html

As per #14

Using of Template extension provided in Django makes it easier to reuse the parts of HTML in other apps or pages.
Speaking of here, I've created a Navbar and footer which will be constant throughout the whole application.

So, there is a need to create a base file (base.html), which consists of a navbar & footer. Using template extension, we can use the base file in all of the required pages in order to get Header and Footer.

  • creation of base HTML file
  • extending it all the required pages (which needs Navbar and Footer)
  • proper management of static files (all the css links, images, js files)

Display picture in main.html

Changes made,

  • The User Profile Picture is now displayed in the main.html.
  • Hyperlink has been modified in main.html.
  • allauth redirection has been removed from the urls.py.

are done in commit df79057

Error : allauth.socialaccount.models.SocialApp.DoesNotExist:

Notes

  • The error occurred due to the missing Client ID and Secret Key from the project environment.
  • The .env file has been updated to contain the client ID and secret key as well.
  • SOCIALACCOUNT_PROVIDERS (a part of django allauth configuration), has been modified to configure the client id and secret key from the .env to provide the google OAuth API service.
  • This should ultimately fix the issue during the testing and debugging.

allauth.socialaccount.models.SocialApp.DoesNotExist issue is now fixed with commit 2146d33

Login & token checking

Usage of LoginRequiredMixin for the main.html in dashboard.

As per the change, login.html is included in the dashboard, so that two conditions takes place in:-
1. If the user is not logged in, Login card must be shown
2. If user is logged in, main content must be shown (upcoming events, past events, and related things)

changes to be done in main.html template in the dashboard app.

UI Enhancement

Is your feature request related to a problem? Please describe.
The OSCHub needs a total UI Revamp as the UI seems stiff and less vibrant. It will be nice if the UI is more lively and user-friendly to increase user-activity on the platform.

Describe the solution you'd like
One of the solution is to modify classes and styles available in the present CSS style sheets and if possible add in comments to improve script readability.

Describe alternatives you've considered
If possible, try using TailwindCSS to replace Bootstrap 5.

Additional context
Good Luck with UI Revamp.

Need for a model to hold all the Admin Emails

Currently, if you want to share a file to a new admin then you need to access the code and add in the new Email-ID. Which is not appropriate as a client. So, the suggested fix:

  • Add a new model to hold all the email id and access the email id from the model to share the sheet to the admins

Hosting the application online

Describe the solution you'd like
Hosting the application online for everyone to use.
Currently working on Heroku.

Describe alternatives you've considered
None so far.

OSCHub Documentation

Why do we have this issue?

The Documentation for OSCHub has not been given a thought throughout the course of building the project. However, it will be essential in the case that the project is to be made public.

The docs that are to be added, are regarding each application and should preferably be made by the person who was in charge of the feature.

Contributors

The initial contributors to each of the features are,
Front End => @Sudhee-bsp
Back End => @bhargavd2
DB & End => @kode-logger

Testing for allauth based authentication.

Changes that are made,

  • Login and Logout changes made to main.html for testing, will be modified with future commits on the frontdev branch, by @Sudhee-bsp.
  • The username, email and registration number are displayed, which have been worked on in future commit, #11 and #17.
  • Allauth login and redirect updated in urls.py.
  • Updated settings.py to work with the django-allauth module.
  • requirements.txt has been updated to contain django-allauth.

are done in commit 94269b5, and 5f7f0f2

Creating a Test Environment

Is your feature request related to a problem? Please describe.
Right now there is no way for someone to work on OSCHub without having access to credentials.
This means they'll have to go through the manual task of generating a bunch of new credentials just to even start working on it.

Describe the solution you'd like
Creating a test environment that mimics the actual main application would enable developers to build and work on the application freely and also allow members from outside the community to contribute and collaborate on the project.

Describe alternatives you've considered
None.

Concealing events from user

Is your feature request related to a problem? Please describe.
Whenever a new event is added to OSCHub, it is available to all the users publicly. Due to this, testing an event before going live is not possible and it doesn't seem like a good idea to reveal test events live.

Describe the solution you'd like
By adding a new Boolean parameter (something like isPublic) to the database, we can check whether the value is true or false.

If true then

  • The event will be visible to everyone

Else

  • The event will be only visible to the admin moderators.

Describe alternatives you've considered
None

Additional context
This can be achieved by adding some control statements to the backend and creating a new attribute in the database table.

USER CHECKIN

the live_event.html will have checkin button to checkin user for the event
and to save the details in eventuserdata

buttons displayed based on time

register button must not be displayed for past event
livestream button should get activated at the start of the event not before that
livestream button should not be displayed after end time

Add a button to Admin and EventReg pages to Update model data to GSheets

Add button to Transfer model data to GSheets


As discussed, the plan is to transfer data from models to gsheets for backup purposes.
Tasks to achieve:

  • Add a button to Admin panel ( Can be removed if not needed in admin panel)
  • Add a button to EventReg page such that it is only visible to Admins.
  • Link both the buttons with a method that will gather all data from the model and sends the data at once to GSheets

User Session maintenance for the root URL

Describing the bug
Login page is being loaded even though the user is logged in when navigated to the root URL https://osc-hub.herokuapp.com/
It should maintain user session across once logged-in till logged out (in-case used sessions) or cookies for a particular time (in-case cookies).

To Reproduce
Steps to reproduce the behaviour:

  1. Login to the website => upon successful login will be redirected to https://osc-hub.herokuapp.com/dashboard
  2. Now navigate to https://osc-hub.herokuapp.com/
  3. You can see the Login page which shouldn't be loaded (as user is authenticated already)

Expected behavior
As user is logged-in the session should be maintained till logged-out, which means though the User hard navigates to the root URL (actually no one does it), website should be able to land user in https://osc-hub.herokuapp.com/dashboard

Additional context
When Logged-in, even opening the new tab in same browser, the root URL "https://osc-hub.herokuapp.com/" should be able to land the user in "https://osc-hub.herokuapp.com/dashboard" when proper session is maintained.

speaker backend

To receive data from the Speaker model and display it in the speaker.html file.

SMTP Authentication Fails during Feedback POST.

image

SMTP Authentication seems to be unresolved as the users are unable to send a mail to the OSC's ID.
I suspect that the issue lies with the Google API not providing permission to send mails from the user's account.

However, this needs to be checked on, in the Django backend as well, in case it's an issue on both sides.

Originally posted by @dat-adi in #60 (comment)

SECRET_KEY exposure

Issue

The SECRET_KEY for this project is currently exposed, and is vulnerable.

Solution

Creation of .env file with the keys before sending off to production.

In charge of this issue : @dat-adi

Docker support

I'm planning to add docker support to osc hub so that oschub is scalable and easy to deploy.

Need for Event caption.

As per the currently designed UI, the event_list.html template (displays all the events) handles the event name and description below it.

  • Usually, the event description is going to be long in real cases, so it wouldn't fit into the card (below event name) and the look and feel of the card is disrupted due to this as it extends the card's measure.

So as per models created in the backdev, the event.eventDescription created over there looks good only in event_detail.html

  • Therefore creating one more field event_caption would resolve this. It will be placed inside event card, in the event_list.html
  • It's max_length=60, should be between 45 to 60.

Users stats for User profile

requirements for user profile stats

  1. total no.of events conducted.
  2. total no.of events attended by user
  3. total no.of events registered, but not attended (not check-in on time)
  4. Needed dates for each specific event, to plot on graph

EventData model Creation

Creation of eventData model to store the event details

  • Add model class
  • Link model to admin site
  • Migrate the database

Building an API for Credit Analysis Integration

Is your feature request related to a problem? Please describe.
There is an ongoing discussion on the potential development of a credit analysis software on the osc-eb repository.
In order for the data of each user on OSCHub to be sent for credit analysis, we will require a method, may it be REST APIs, or a simple connection to the Sheets API with an indexing for each participant.

Describe the solution you'd like
Look into the features and potential upgrades that can be made in order to build an API that would allow for Data to be sent from OSCHub with the least number of issues and good scalability.

Describe alternatives you've considered
Alternatives that have been considered are a script that parses the data that we have stored on Google Sheets rather than OSCHub.

Feature request: Integration with Google Calendar to set event reminders.

Is your feature request related to a problem? Please describe.
Add in a feature to set up reminders for upcoming events on Google Calendars. Currently, there is no reminder system in place and I don't want to miss out on OSC events. OSC <3

Describe the solution you'd like
It'll be useful if we could get an option to integrate Google calendars onto the application to set reminders for upcoming events.

Describe alternatives you've considered
Sadly none.

Additional context
Well, here's the API -> https://developers.google.com/calendar/api.
Add in the Event name, time and set a reminder 30 minutes prior to the event start time.

Broken django-allauth functionality after frontdev2 merge.

Issue Discovery

The new merge from the frontdev2 branch to the backdev branch caused a few changes in the structure of the allauth functionality.

Where to look into

The signup is not visible and needs to be looked into, this might be related to the settings and configuration of the allauth application.

Connected issues/commits/PRs

The PRs that changed the existing functionality are these ones, #25 #26

Refactoring of the Image fields into URL fields.

As proposed by @Sudhee-bsp, conversion of the existing ImageFields in our Django Models into URL Fields is a feasible solution to the data management issues.

The refactoring of these fields will allow for the following changes in the roadmap,

  • There is no longer a need for a MEDIA_ROOT, as the images that exist on the webpages are essentially just links which are displayed from an external source, options including Google Drive, and Imgur.
  • The storage functionality is negligible as the need for storing images sinks down drastically.
  • Google Drive provides for the event images as the perfect medium for storage with public URLs to share the images.

Files and applications that need to be worked on,

  • eventreg:models
  • eventreg:templates

A script is required to handle the filtering of data and sending it to sheets

Tasks that might solve the issue

  • Fixing the code by adding model filtering methods and getting data in the required format of lists
  • Verifying the obtained list by event name
  • Verify whether the event is over or not
  • Finally, send the data to GSheets using Batch Update

Closing this issue will finish most of the backend-database stuff

Events needs to be listed out.

All the events which were added from the admin interface (database) should be listed out in the event_list.html

  • At present, there is no support to add the Event image (something as the main poster created for the event) through the admin interface.
  • It should be made available, to make use of displaying the image on Event cards.

Feedback form Backend Email

Describe the bug
This bug can be fixed by replacing the email id with osc mail id. The bug lets the code to send the feedback message to a developer's test email rather than sending it to the club mail id.

To Reproduce
Steps to reproduce the behaviour:

  1. Open https://osc-hub.herokuapp.com/dashboard/about/
  2. Scroll down to the end of the page
  3. Fill in the feedback
  4. The feedback will be sent successfully to the test email instead of the club's official email.

Expected behavior
The feedback form in about.html will not be sending any feedbacks to the osc instead all the feedback will be sent to the already existing developer's test email.

Screenshots

Screenshot of the line that needs to be fixed.
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Edge
  • Version: 91.0.864.70

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Feature to be added : Authentication Based on Email

Changes made,

  • settings.py has been updated to utilize email for authentication.
  • The information displayed in the webpage, now consists of the user's name, email, and registration number.

are done with the commit 81eee47


Additional Notes

  • The user's email is stored as the email in the User Model.
  • The user's name is stored as the firstname in the User Model.
  • The user's registration number is stored as the lastname in the User Model.

Accounts Maillist Fix

Describe the bug
We receive an error django.db.utils.OperationalError: no such table: accounts_maillist due to maillist trying to access a table that doesn't yet exist upon first build.
A fix to this issue may be attempted by utilizing the try-except clauses.

To Reproduce
Steps to reproduce the behaviour:

  1. Clone the Django Project.
  2. python manage.py makemigrations.
  3. See error

Expected behavior
The Django Table for maillist should be created without any error popping up.

Additional context
The current workaround to this error is to,

  1. Comment out the files SheetMe.py and accounts/admin.py.
  2. python manage.py makemigrations
  3. Uncomment and proceed on with life.

Feature Request : Community to contribute/add upcoming open source events to the Application.

Feature request

  • Add in a method for the open-source community to add in upcoming open source events by creating a pull request.
  • Adding in or modifying contents present in a JSON file, from which data is read and updated on the website to display upcoming open source events along with other details like, when, where, and what it is for.
  • JSON file updated must follow a strict schema, if failed to do so, pull request can be reviewed and rejected or the maintainer can request for changes. This process can be automated using GitHub actions.

An example worth looking into https://hacktober-fest-2020.vercel.app/.

class based list and detail view

Changes made in the eventreg application,

  • The EventListView class and EventDetailView class have been added to the views.py.
  • Modification of the urls.py to work with Class Based Views.
  • Iterative Implementation has been worked on in the eventdata_list.html file, to display events in List format with an appropriate hyperlink directing to the event detail view.
  • All the fields present in the event model are displayed in the event_detail.html.

are done in commit df79057

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.