Code Monkey home page Code Monkey logo

psutarchive's Introduction

PSUT Archive

Look at the Nuxt 3 documentation to learn more.

Setup

Make sure to install the dependencies:

# yarn
yarn install

Development Server

Start the development server on http://localhost:3000

yarn dev

Production

Build the application for production:

yarn build

Locally preview production build:

yarn preview

Check out the deployment documentation for more information.

psutarchive's People

Contributors

itsmohmans avatar hddthr avatar al-khawaja avatar ahmadurabi avatar virtual4087 avatar

Stargazers

Lunar R.Salameh avatar  avatar Dina alsaid avatar Tamim Hamoudi avatar

Watchers

 avatar  avatar  avatar

psutarchive's Issues

Consistent history

Currently, if I sort the courses page, then open a course, then press the back button, I will return to the original unsorted courses page.
It would be nice to go back to the sorted page (ie., This would make the website work like a consistent Single-Page-Applicaiton).

Create List component

The base list component that is going to be used for all lists in the app like Courses, Categories, and Material (exams / notes).
This component should be dynamic and customizable for each use case as the following criteria:

  • ability to choose between flex view, grid view, or auto
  • optional header title
  • optional header link
  • list loading animation
  • #12
  • #10
  • #11
  • #5
  • pagination or infinity scrolling with lazy loading
  • default values for everything

Preserve state

Session State

  • sorting / search state
  • pagination state
  • tabs state in resources page
  • current course category when switching languages

Browser State

  • User's preferred theme
  • User's preferred language
  • User's favorite lists

UI / UX Improvements

  • Add back button across the app (this would help users when the website is in PWA mode)
  • Add tabs navigation in courses page to choose between categories with an 'All' option, it should update accordingly if the user has chosen a category from the homepage.
  • Add carousel navigation for favorite courses on the homepage
  • #25
  • #26
  • Add a drop-down menu in Navigation bar to choose course category
  • Resource count in single course page
  • Sort list of files in the all files dialog by name
  • Add indicator for the number of courses in the current list
  • Add a search bar to the nav bar
  • Add a new badge to new resources

Google chrome does not respect downloaded file name

Add brand fonts

Add English and Arabic fonts with light, extra-light, medium, bold, and semi-bold variants

Bug in pagination

Pagination logic is buggy when it comes to which pages to show and which to hide. Sometimes it shows the ... when it's not needed, and sometimes it doesn't show the last page in the pagination.

Add resource (1 course) page

Design Requirements

  • List of available material of chosen course

  • Card

    • Download resource
    • File(s) size
    • Resource-specific info
    • Share button
  • Search

  • #10

  • Sort

  • Tabs to choose between Exams and Notes resource types

  • Pagination

  • Display course information / actions in the header:

    • Course ID
    • Add to Favorites button
    • Remove 'resources' string from the page heading
    • [ Future ] 'Submit new papers for this course' button
  • #62

  • #17 when no papers were found

Refactor type in note-type

  • Remove reference, lecture, and review from note types
  • Replace practice with assignments
  • Add project to note types

Sort by resources count on all courses by default

Since many courses will not have past papers in the beginning, courses in the courses list should be sorted by the resource (past papers) count by default.

  • Sorting courses by resources count should be the default option
  • Sorting courses by resources count should be applied on all the courses, not just the current page

Since this specific sort happens on the client side and not strapi's side, find another way to sort without requesting the full list of all courses. The solutions I have in mind:

  • set up a custom api controller for the advanced sorting (& filtering) options that we need.

  • use strapi filter's to request the courses with resources first using the following filter query:

    resources: {
        updatedAt: {
            $null: false
         }
    },

    and show them first in the list, then request other courses.

  • check again if there's a way or workaround to use strapi's sort query to achieve this

Bug in course tabs

When you go to a course page and search for resources, the number over the tabs (Exams and Notes tabs) becomes wrong.

Switching between tabs in resource page

Description

There is a brief moment when switching between the "Exams" and "Notes" tabs, where a resource card appears out of place.

Steps to reproduce:

  • Open a course page with resources
  • Switch from the "Exams" tab to "Notes".

Animated GIF showing the resource page

The gif shows a user switching between the "Exams" and "Notes" tabs in slow motion

Enhance SEO

Basic SEO improvements

  • title, description, favicon, and page lang
    • multilingual title and description
    • meta keywords (not very important)
    • title and description for each page
    • dynamic title and description

More Improvements

Add favorite courses

Somewhere on the home screen (under the search bar?).

User's favorites are stored in the local storage.

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.