Giter Site home page Giter Site logo

alumni's People

Contributors

akanimesh avatar anuraagheisenberg avatar arpantarkas avatar chiragsharma1 avatar chouhan-mohit avatar dependabot[bot] avatar divyanshkhetan avatar garg3133 avatar janglee123 avatar lunarshadow152004 avatar mihir-solanki-13 avatar muditjoshi98 avatar nightfury742 avatar priyansh61 avatar ritankarsaha avatar saksham-1508 avatar samakshagarwal1112 avatar samay-rgb avatar sarthakyeole avatar shivansh050 avatar shivansh1010 avatar sri2dark avatar tusharsri1998 avatar tushhr avatar vaibhavsahu2810 avatar yashpatil641 avatar

Stargazers

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

Watchers

 avatar

alumni's Issues

[FEATURE] Implement logic for custom logging.

Is your feature request related to a problem? Please describe.

Custom logs are to be implemented for both environments, development and production. Custom logs will be useful to add convenient data that could be helpful in debugging or removing unwanted data flooding the log stream.

Describe the solution you'd like!

  • Three different custom formatters are to be defined in the LOGGING dictionary - simple, verbose, and detailed, with increasing detailing of level messages.
  • Two different handlers are to be defined, one for showing logs in the terminal which is to be used in development, and one for storing logs in the file, which is to be used in production.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

  • Refer to the official Django documentation for logging module!
  • The LOGGING dictionary is to be defined at the bottom of the common.py.

[FEATURE] Make a detailed blog page.

Is your feature request related to a problem? Please describe.

The detailed blog page is to be created at \blogs\<id-of-that-blog>\.

Describe the solution you'd like!

Make a \blogs\<id-of-that-blog>\ page following the standard convention, i.e a header, a footer, and a box with all details in it. Additionally, make sure the page is responsive.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

For reference, you can check out detailed pages of news at \news\<id> or profiles at profile\<id>.

Update scripts used to populate new database.

There are a bunch of scripts in the scripts/ directory of the project which can be used to populate the initial data when setting up this project by running python3 manage.py shell < scripts/add_batch.py command (for example).

However, these scripts are stored in many files, which can be confusing to users as to which scripts to run and in what order. Also, the add_data.py script is not working right now and the user data in acc.xlsx is also old and very few.

So, we need to do the following:

  • Create a parent script named populate.py, which is the only script the user would need to run while populating the database. Inside this script, import the function from other individual scripts and run them (in the order they should be run).
  • Update acc.xlsx file to include some more dummy data, and add_data.py file to be able to use the Excel file and populate the data into the database.

Out of all the scripts currently present in the scripts/ directory, add_batch.py and add_data.py are the only two important scripts. And the logic for creating profile.reg_no should be included in the add_data.py file only.

Add an endpoint or a script to delete unused map points.

There is a MapPoints model in the geolocation app, which contains the latitude/longitude information for all the cities where our alumni network is present. But some of these points are outdated (with 0 alumni members) and are still shown on the map.

So, we should have either an endpoint which we can hit or a script which we can run on the server to delete the map points corresponding to which there are no Profile instances that exist.

[BUG] DoesNotExist Error at News and Chapter

Is your feature request related to a problem? Please describe.

Whenever user tries to open a /news/ page or a /chapter/ page on an index that does not exist, for example if user tries to open /news/9/ or /chapter/5/, but no data is there to be displayed at that index, the page shows a DoesNotExist error like this.

Screenshot 2024-06-27 040838

Describe the solution you'd like!

Whenever user opens the page on a non-existent index, the user should be simply redirected to the /news/ or /chapter/ page respectively.

Describe alternatives you've considered

None.

Developer Help

None.

[FEATURE] Upvote feature for blogs

Is your feature request related to a problem? Please describe.

The blogs model has a field 'upvotes' but currently it is not being used anywhere. Now that detailed blog pages are ready at '/blogs/' and general page at '/blogs' is almost done, we need to add an upvotes button for blogs.

Describe the solution you'd like!

Since currently we only have a detailed blog page for every blog at /blogs/<id>, so let's start the solution from there and when the basic setup is done, we can easily do it for blogs on /blogs page as well. The solution might include :

  • Making a new model upvotes, for mapping blogs and the user that upvoted it.
  • Use Ajax to update the upvote count dynamically without requiring a page reload.
  • User must be logged in to upvote a blog.
  • There is no need for a separate downvote button. If a user has upvoted a blog, simply deselecting will undo the upvote.
  • When the blog page at /blogs is ready, will be adding the feature there as well.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

Feel free to ask for help incase of any doubt.

[DOCUMENTATION] Update readme to install different version of python

Is your feature request related to a problem? Please describe.

Document additional steps to install Python3.9 and use it while creating a virtual env,

Describe the solution you'd like!

As of know, the incompatibility with the latest Python versions is creating various module version related issues when setting up the project. We need to document additional steps to install Python3.9 and use it while creating a virtual env,

Describe alternatives you've considered

None

Developer Help

Checkout Pyenv

Add option to send dummy email on Admin Dashboard

Add a "Send dummy email" button in the "Mailing service" tab of the Admin Dashboard. By clicking on this button, an email should only be sent to the settings.BCC_EMAILS using the selected email template.

Match state as well on the `/members/mapsearch/` endpoint.

On the above-mentioned endpoint, currently we only match the city (we get the 'search' query as city, state, country). This leads to discrepancies in the profiles shown on the result page because two cities at different places can have the same name.

So, along with 'city', we should filter on the basis of the 'state' as well.

Steps to reproduce the issue

  • Create two alumni profiles with same city names but different states (ex. Hamirpur is in both HP and UP, Aurangabad is in both Bihar and Maharashtra).
  • Go to localhost:8000/geolocation page, zoom in to the city you just created the profile with at any one of the states, and click on it to go to the /members/mapseach page.
  • You'll see that the list contains profiles from other states as well (but with same city name).

[FEATURE] Make a blog creation page.

Is your feature request related to a problem? Please describe.

The website currently is missing a blog creation page.

Describe the solution you'd like!

Make a blog_form.html file with all the fields required to create a blog at route /blogs/newBlog. The blog form will be asking for the following fields :

  • Title of the blog(required)
  • Thumbnail for the blog(required)
  • Tags (Multiple select) (required)
  • Content of the blog (required)
  • Type of Blog ( Self or campaign) (Not required)
  • Campaign (If blog type is selected as campaign, only then is required, otherwise not)
    Whenever the user creates this blog, a 3-second popup should show saying "Your blog will be displayed publicly shortly after the admin approves it." We want this as all blogs are to be approved by the admin before being visible publicly but you don't have to deal with that. Just remember to show the popup.

Please keep in mind, that we follow a specific design pattern throughout the platform.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

For design reference, check out /jobs/post.

Make and implement a custom 404 Error page

Is your feature request related to a problem? Please describe.

Create a custom 404 error page.

Describe the solution you'd like!

As of now the website uses the default error page by django. Create a template for 404 error page as such and implement it so that a user is redirected to it whenever a 404 error occurs.

Describe alternatives you've considered

Feel free to revamp the design if you have better ideas.

Developer Help

New design:
Group 14

Upgrade project to Django 3 LTS

We need to upgrade this project to atleast Django 3 LTS version as soon as possible, since Django 2 LTS has even crossed the End of extended support on April 11, 2022, which means they won't even fix any security vulnerability now in Django 2 LTS.

Please note that we cannot just upgrade to Django 3 LTS by just making a change in requirements.txt file. We need to properly go through the release notes of Django, starting with v3.0, and keep on making appropriate changes in the codebase (to make sure the update does not break anything) as we slowly update the django version.

[FEATURE] Make a blog page

Is your feature request related to a problem? Please describe.

The blog page is to be created. The current \blogs\ page is just an empty page with just a "Let's get started!" text in it.

Describe the solution you'd like!

Make a \blogs\ page following the standard convention, i.e a header with the title Blogs, a footer, a search box with search fields - author's username, title, tags(should be able to select multiple) and type of blog, and all the available blogs in the form of boxes only showing author name, title, tags, date added, whether the blog is self or which campaign it belongs to and a view button to open a full detailed page of that blog at \blogs\<id-of-that-blog>. No need to make the detailed blog page for now. Additionally make sure the page is responsive.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

For better idea of blogs data, check out the blogs model in feature\blog branch or PR #161
For reference to search box, check out \jobs\.
For reference to boxes of blogs, check out \news\.

Add Redirection to awards page when awards are opened on an index that does not exist!

Is your feature request related to a problem? Please describe.

Whenever user tries to open an /awards/ page on an index that does not exist, for example if user tries to open /awards/2/ here, but no award is there to be displayed at index 2, the page shows a DoesNotExist error like this.

Screenshot from 2024-06-01 13-00-29

Describe the solution you'd like!

Whenever user opens the awards page on a non-existent index, the user should be simply redirected to the /awards/ page.

Describe alternatives you've considered

None

Developer Help

None

Add option to send personalised emails

Earlier, we used to send personalised emails to everyone (a separate email to everyone with their email address in 'To:'), but that was changed in 8cf7c6d where we started sending a common email to everyone with their email addresses in 'Bcc:'. This was done for two reasons:

  • It used to take a lot of time to send emails to everyone individually, and for that time period the browser used to keep on loading and it used to sometimes fail in between with no clear visibility of who has received the email and who has not.
  • There is a limit on our email account on how many individual emails we can send out in 24 hrs duration.

But we still need a way to send personalised emails to our Alumni (a personalised email is where the email can contain some personal information of the recipient like their name).

And a second step that we need to take after this is to send the emails asynchronously instead of keeping the browser in "loading" state while the emails are being sent. This can be done by making use of message queues and corn jobs.

Send out personalised birthday wishes.

We should set up a cron job that would run every day and send out a personalised email to every alumni who has their birthday on that particular day.

Add a country code field on registration page besides "Mobile No." field.

Currently, we have a restriction on registration/profileedit forms due to which the "Mobile No." and similar fields only take 'number' input. This is problematic for our alumni who are living overseas because they can't prefix their contact number with the country code.

We also can't just change the type of contact number fields from number to text because this restriction is applicable at database-level as well.

So, we should add a new 'Country code' field beside the contact number fields, which can either take text input or show a list of all the countries with their respective country codes which user can select from.

Add a default `/awards/` page.

Is your feature request related to a problem? Please describe.

The /awards/ page is currently an empty page with just a "Lets get started!" text in it.

Describe the solution you'd like!

Make a /awards/ page following the standard convention, i.e a header with title awards, a footer and a dialog box floating in between header and footer, with a "(N) awards to display!", N being the number of awards. Additionally make sure the page is responsive.

Describe alternatives you've considered

None

Developer Help

None

Dsiplay state information in Profile card for member search results.

Is your feature request related to a problem? Please describe.

When members are filtered based on citites, currently all the profiles of the matching city shows up. However, the state where the member resides is not included in the profile card. This causes discrepencies especially when there exists two cities having the same name but are in different states.

Screenshot from 2024-06-05 02-45-07

When clicked on each card

In UP In HP
Screenshot from 2024-06-05 02-45-16 Screenshot from 2024-06-05 02-45-22

Describe the solution you'd like!

Display the state field in the profile card next to city.

Describe alternatives you've considered

None

Developer Help

Populate the DB by adding temporary data to data_acc.xlsx under /scripts and then running python manage.py populate. Add two cities having the same name which are in different state to reproduce this.

Add capability to edit Education on self profile page.

Currently, when you access your profile page on the portal, there is an option to add a new Education degree, but once the Education is added, no option is given to edit the same.

We should add this capability to the portal.

[FEATURE] Implement functionality for Blogs

Is your feature request related to a problem? Please describe.

The blog feature is to be implemented on the website. The entire idea is as follows:-
Every now and then, there will be campaigns running on the website revolving around some theme. Now the alumni will have a feature to write blogs on the website. The alumni will have a choice to dedicate the blog to the campaign running at that time on the website or not. After the blog is published, people can read them and also leave comments.

Describe the solution you'd like!

Now, you are required to implement the models, views, and URLs for the feature. For your ease, the models for the blogs are already implemented in the feature/blog branch in the upstream repository. Feel free to reuse those. Accordingly, views are to be defined for CRUD operation of blogs, filtering of blogs, CRUD operation of campaigns, and CRUD operation of replies.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

Reuse models in feature/blog branch that will give you to better understanding of the data structure of blogs. Also, for reference, could see events and job_postings!

Add default text for event entries not specified

Is your feature request related to a problem? Please describe.

At The /events/ page, whenever an event is listed that doesn't contain the optional fields, "Location" or "Organiser", then it displays the event with a lot of empty space like in the image shown below:

Screenshot 2024-06-05 024125

Describe the solution you'd like!

Display the text "N/A" in place of these fields whenever these fields are empty.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

To create an event, you can either create one from your django-admin at /admin/events_news/event/ or you can create one at /adminportal/events. Then you can view it at /events/.

Fixing the Awards Model and making corresponding changes.

ISSUE

The current Award Page has many anomalies like:-

  1. If the description is big enough, it displays the entire thing, instead it should be trimmed of to a more shorter content for instant preview.
  2. It cannot incorporate any image. An award without an image of the award is highly vague.
  3. It has no received by option. The award has it's title, and the given by attributes however it's missing a very important attribute which is the received by section. To whom, the award goes to, SHOULD be displayed.
  4. Lastly UI fixes.
Screenshot 2024-07-05 at 3 11 03 AM

The screenshot shows the anomalies. No image option here to add it, also shows the entire file instead of trimming it out.

FIXES

  1. Update the model to incorporate the image attribute and the received_by attribute.
  2. Update other files as necessary.

REPRODUCE SIMILAR EFFECTS

To reproduce this effect, visit the admin page and try to submit a new award, you will notice the anomalies in the model. Also, create an award with a long description as shown in the screenshot. Come back to the awards page to visualise it.
To visit the awards page clear the receding end of the URL and type /awards along with the localhost: link or you can directly visit from the dashboard->young-achiever-award.

Thank You.

[FEATURE] Add a feature for admin approval for blogs.

Is your feature request related to a problem? Please describe.

The blogs that are uploaded in the website could be at risk of being polluted with content not fit for public. So for that reason, we want the blogs to be approved by the admin before being displayed for public at /blogs page.

Describe the solution you'd like!

The solution is to introduce a feature to approve blogs by the admin before being available for general audience. The solution may include:

  • Introducing a new Boolean field in blogs model 'approved' with default as False.
  • Only allowing users to see blogs that are approved by admin.
  • At /adminportal, make a table "Blogs to be approved" under dashboard for admin consisting to blogs awaiting approval.
  • Add two buttons in the table, "Approve" and "Discard". "Approve" will change the value of approved field in blogs model to True and "Discard" will delete that blog.
  • Make sure the table you make is responsive.

Describe alternatives you've considered

Feel free to suggest!

Developer Help

None.

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.