Giter VIP home page Giter VIP logo

open-polito / open-polito Goto Github PK

View Code? Open in Web Editor NEW
13.0 2.0 3.0 11.49 MB

The unofficial, open-source app for PoliTo students. Available for mobile, desktop & web.

Home Page: https://open-polito.github.io

License: GNU General Public License v3.0

JavaScript 2.47% Starlark 0.14% Java 6.80% Objective-C 0.57% Ruby 0.96% TypeScript 82.21% Shell 0.36% C++ 1.72% Objective-C++ 1.53% Python 1.56% Rust 0.06% HTML 1.08% CMake 0.06% Kotlin 0.46%
react-native android javascript react react-native-web tauri typescript polito

open-polito's Introduction

Open PoliTo

Unofficial, open-source mobile app for Politecnico di Torino students.

Try online Android app

Windows app macOS app Linux deb Linux AppImage


Github All Contributors GitHub all releases GitHub repo size GitHub

Contents

Features

Open PoliTo's core features are currently being developed, but the app is already usable to some extent.

Check out the Milestones page to track the progress and features of the next release.

Running the app

Installing the binary

For the latest automated build APKs (updated on every push), see the Actions tab.

For the latest stable releases and beta builds, please refer to the Releases section.

Building from source

1. Setup

Make sure you have correctly installed and configured Node.
Running on Android requires Android Studio and the Android SDK.
Running on iOS requires XCode.

To run in the emulator (Android): setup an emulator in the AVD manager.
To run on a real device (Android): connect the device to your development machine with USB debugging on.

More info on the environment setup is available at the React Native website (under the "React Native CLI" section).

Install all dependencies: yarn

For iOS, install dependencies: cd ios && pod install

2. Run in debug mode

Start Metro bundler: yarn start

Open a new terminal, from which you can:

  • start the Android app: yarn run android:debug
  • start the iOS app: yarn run ios

3. Run in release mode

Alternatively, you can directly run the app in release mode:

  • Android: yarn run android:release (replace release with beta or dev to run the beta or dev release, respectively).
  • iOS: (coming soon).

Contributors

Thanks goes to these wonderful people (emoji key):


Robert Olaru

๐Ÿšง ๐Ÿ’ป ๐ŸŽจ

Giulio Muscarello

๐Ÿš‡ ๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

License

Open PoliTo is licensed under the terms of the GNU General Public License v3.0.

open-polito's People

Contributors

allcontributors[bot] avatar andreademasi avatar capacitorset avatar dependabot[bot] avatar ggraziadei avatar robertolaru avatar

Stargazers

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

Watchers

 avatar  avatar

open-polito's Issues

Hide courses

Add an option to hide some courses. This can be useful when courses aren't relevant, eg. because they are from a different semester, they were already taken (and in these specific cases we might want to hide them automatically), or because the student will take the exam in another semester.

Login error when re-opening app after downloading a file

It seems the access token is not valid anymore after a file download is performed (from the Material section).
The issue seems to arise only when restarting the app. Downloading multiple files works, as does opening the webmail after downloading files.

Unsure if this is because a new API key must be used after a file download, or if this is an error from the API, or if the token gets somehow mutated/deleted after a file download.

Request limiter (by request type)

Implement a request limiter for each request type in order to allow same requests only after some defined time. This is to prevent overloading the servers, especially when fetching data that doesn't update often.

Rewrite data handling logic in a more flexible way

Rewrite data handling logic (re-think Redux and React's Context API usage) in a way that is easier to manage and less bug-prone.
Structure of the new data logic should also take into account issues #39 and #40, which shall be immediately implemented after this issue is resolved.

Widgets

It could be interesting to have home screen widgets, eg. upcoming lessons, upcoming bookings, recent materials, or recent notifications. Note that this can't be done directly in react native.

Material: add help button for instructions

The user should know where the folder where files are stored is located. Similarly, it should be clear how to delete files or select multiple files, or the use, and the existence thereof, of other future features of this page. Add a help button.

Courses page

Main points:

  • Create a courses page
  • Create a page for viewing course details

Material: offline viewing mode

Main points:

  • The app will store the material tree for offline viewing
  • Downloaded files will be usable as usual
  • Non-downloaded files will be grayed-out and the download icon will be replaced by an offline indicator
  • This enhancement requires implementation of online/offline detection.

Material: manage downloads in-app in special folder

Main points:

  • File downloads should be handled in-app, with a notification informing the user on the download progress
  • After download is complete, the download icon will be replaced by another icon (checkmark or "remove" icon)
  • Clicking on said icon will ask the user whether they want to remove the file. File will be kept or deleted according to choice.

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.