Coder Social home page Coder Social logo

pclubiitk / student-search Goto Github PK

View Code? Open in Web Editor NEW
19.0 9.0 40.0 2.45 MB

A universal cross-platform and modern student search.

License: MIT License

TypeScript 51.68% JavaScript 5.52% CSS 6.22% HTML 20.95% Shell 0.84% Dockerfile 1.42% Python 13.36%
student-search iitk hacktoberfest

student-search's People

Contributors

abdatta avatar adarshaj avatar dryairship avatar pallavagarwal07 avatar subhdeep avatar swetak20 avatar yashsriv avatar

Stargazers

 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

student-search's Issues

Use Pop for database stuff

Pop offers some very good features which might be nice for this project. It also abstracts the database connection so we can switch databases easily.

Make student cards shareable by a URL

It'll be helpful I think to provide an option to share a student card that can be directly opened by a url. A simple url like https://search.pclub.in?rollno=160027 can be shareable, opening which should directly open the dialog card of the student with the given roll no (160027 here).

User-Friendly Search for Student Name

StudentName = 'First' + 'Middle' + 'Last'

If we search for any combination of these three strings, other than the one given in the original data, we don't get the desired results.

Example:
StudentName = 'Bhuvan Singla'
Search = 'Singla Bhuvan'

Search is slow [ui]

Some timing results against the old student search, and how we compare. Used Chrome Profiler on my PC.

Test:

  1. Go to student search page.
  2. Select "Year" and choose "Y15".

This is what the profiles show:
Our search:
net time: ~1420ms (from mouseup to a useable thing with list of students clearly visible)
call to filter(): ~15ms (noting this because initially I thought filtering entries would be the cause of jank but apparently no)

it should be noted that this one big event handler for onclick is run for a ~830ms. The point here is that the handler is run on the main thread of the browser, so it causes a visible slowness (jank) in the UI.
This I think is the cause of the whole UI freezing up a bit when mouseup is triggerd on "Y15".

Old Student Search:
Net time: ~520ms
The mouseup event handler used causes a delay of ~50ms only on the main thread (which leads to the UI looking much "snappier")

I don't have any idea how to fix this, would appreciate any views.
PS: Attached profiles! [load in chrome profiler]
profiles.zip

Remove Iris

Instead of Iris for http routing, try and find an alternative which works better.

Add Comments

Currently the comments are not up to the mark in the source code.

Make the Backend Fully Featured

Currently the backend serves all the data in a json. Make it fully featured by adding filtering on backend too via query parameters.

Upgrade frontend code to latest Angular (10)

The angular version used here (5.x) is now too old and not even supported by the Angular team. It's advisable, I believe, to upgrade it to one of the latest versions (8, 9 or 10).

You can follow the steps at https://update.angular.io/ to upgrade angular. Make sure to upgrade one version at a time, and test everything after each upgrade.

Lemme know if any help is required.

Progress:

  • Upgrade from Angular 5.x to 6.x
  • Upgrade from Angular 6.x to 7.x
  • Upgrade from Angular 7.x to 8.x
  • Upgrade from Angular 8.x to 9.x
  • Upgrade from Angular 9.x to 10.x

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.