Code Monkey home page Code Monkey logo

campus-ios's Introduction

xcodebuild

Tum Campus App - An Unofficial Guide Through University Life

The TUM Campus App (TCA) is an open source project, developed by volunteers and available on the App Store.

It mostly targets phones, but can also be used on tablets or any other device that runs iOS. We also have a mac app. This is the repo for the iOS version of the TUM Campus App.

🚨 Public Service Announcement 🚨

Currently, we are at a transitioning point for our TUM Campus Apps. We have three platform-specific versions: iOS, Android, and UWP.
However, maintaining these distinct versions has proven challenging, with notable issues including feature disparity and the need for individual bug fixes for each platform. Furthermore, this model is dependent on having a dedicated maintainer for each app.

As such, we have decided to consolidate our resources and efforts towards the creation of a unified, cross-platform app using Flutter. You can access the new codebase here: github.com/TUM-Dev/Campus-Flutter.

By uniting our efforts under one platform, we aim to enhance our efficiency and streamline the feature sets across all versions, thereby offering a more cohesive and reliable user experience.

We invite and value your contributions to the ongoing development of the Campus-iOS. However, please note that we are transitioning towards a new Flutter-based codebase, expected to take over the platform-specific apps in 2024. We thank you for your understanding and look forward to your continued support during this exciting period of transition. If you have any comments/feedback about this decison, you can reach us at app tum.de or by adding a GitHub issue

Features

  • Calendar Access
  • Lecture Details
  • Grades
  • Tuition Fees Information
  • Study Room Availability
  • Cafeteria Menus
  • Room Maps
  • Universal Search: Room
  • TUM.sexy Redirects

Screenshots

Simulator Screen Shot - iPhone 12 Pro Max - 2021-01-11 at 03 07 47 Simulator Screen Shot - iPhone 12 Pro Max - 2021-01-11 at 03 08 14 Simulator Screen Shot - iPhone 12 Pro Max - 2021-01-11 at 03 09 44 Simulator Screen Shot - iPhone 12 Pro Max - 2021-01-11 at 03 09 51

Contributing

You're welcome to contribute to this app! Check out our detailed information at CONTRIBUTING.md!

Beta

If you want to participate in the beta of this app, enter your details here to get invited via TestFlight.

Policies

Privacy policy
T&Cs of the lecture chat

Support

You can reach us on Facebook, GitHub or via E-Mail [email protected]

License

Licensed under GNU GPL v3

campus-ios's People

Contributors

14slash12 avatar antonwy avatar atharva-mathapati avatar aw-tum avatar chrgrb avatar commanderstorm avatar ffittschen avatar fkiwitt avatar ge65cer avatar hamidzr avatar jakobkoerber avatar joschahenningsen avatar kordianbruck avatar larryzuo avatar lnsp avatar lukaskollmer avatar mammuth avatar melloskitten avatar mvitanov avatar nerdsupremacist avatar philipp000 avatar philippzagar avatar readmecritic avatar simonbohnen avatar suriyaa avatar tg908 avatar tgymnich avatar thellmund avatar thezoker avatar twihno avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar

campus-ios's Issues

Spinner Bug when there are no cards in Featured Tab

I've run across a minor issue - If you have no cards enabled on your Featured Tab, and pull the screen down to refresh, the spinner simply keeps spinning forever. And if you decide to change the tab while the spinner is there, then return to the Featured Tab again, the spinner will stay in its place, frozen, and you are unable to refresh again.

Using IPhone 6, iOS 10.2.1

Release first version in app store

I'm currently working with the guys from the ITSZ to get an account rolling, so we can publish the app.

Hope to have everything set up by next week, so we can publish a first version starting with august.

Alarm / notification system

It would be great to have GCM on the iOS app as well in order to be able to support the Alarm feature on both platforms and maybe get better backing from the TUM through this.

The GCM message format is listed here: https://github.com/TCA-Team/TumCampusApp/wiki/GCM-Message-format

The GCM message does not contain all the information needed as that would probably exceed the size limit of the GCM payload. In order to fetch the full message please check the API client in the Android version.

screenshot_2015-11-05-18-20-03
screenshot_2015-11-05-18-14-23

News: Card and list is showing most future news first

The news-card is currently showing the event that's at position one of the api response. Currently that's a TU movie anytime in 2017.
The card should probably show the news which is the next upcoming one?

Same for the list of news - in Android this is solved by scrolling to the position of the closest news.

Crash: Plus Sign

Hi! I'm running iOS 10.2.1 on my IPhone and ran into this issue.

Tapping on the + sign on your profile leads to the app crashing after 2-3 seconds

Pods are not in gitignore

I just noticed that the pods are not in the gitignore.

First we have to remove all the dependency sources.
Then we have to add the pods to the gitignore

License

Heya,

so I just wanted to ask everyone to specify what their license ideas are. I saw a few comments like

//  Copyright © 2016 LS1 TUM. All rights reserved.

which I'm not sure what LS1 exactly is. I've currently release it under GPLv3 - is everyone alright with that?

Refactor use of TUMCabe news API?

The news API (https://tumcabe.in.tum.de/Api/news/) currently contains 3 sources:

  • TUM news
  • TU movie
  • MVG Störungsticker

In Android the approach looks like this as far as I understand:

  • Fetch items from the news/ endpoint once
  • Get the closest TUM news and display it as card
  • Get closest movie news and display as card
  • Get closest Störungsticker news and display as card

In iOS we currently just display the most recent news in the news card and the most recent TU movie in the movie card. However the movie is managed by the MovieManager (and it made it's own request to the kino/ API endpoint to build that card).

Maybe we should adopt the design of the Android app and build 3 cards (movie, news and MVG Störung) via one single news/ call?
The kino/ endpoint is then used in the detail view of a movie.

Related "MVV malfunction card" #25

Compiling not possible

Sadly I'm not able tu build the app. Would be nice if there will be an update so that you can compile the app at least
2016-10-30 4 57 23

Card Design Update

What do you guys think of adding labels to the cards with the card type: e.g. Mensa, News, TU Film ...

simulator screen shot 16 04 2017 23 31 59

simulator screen

Poor performance due to missing caching

So from what I've tested the app does not seem to cache most of the data. Most noticebly it happend several times that the app was unresponsive due to load some data (10-20 seconds in the case of the calendar).

We will run into problems with the TUM. Especially the calendar uses a lot of resources on their mainframe. That should be updated once every 7 days or so at the very most! (Ask @xsrf for more details on this)

Please take a look at the Androids caching mechanics: https://github.com/TCA-Team/TumCampusApp/blob/master/app/src/main/java/de/tum/in/tumcampusapp/managers/CacheManager.java

Add Default Campus

Currently there is no logic regarding the default campus I think, right @mathiasquintero?

Based on the default campus a couple of behaviours change, like the cafeteria card or the MVV card (s. #12 "Add MVV Info").

Buggy XML parsing

The current implementation works, but its not really a great solution to first parse the xml and then cast it to json.

We need to improve the logic and make it neat and tidy to not have "spaghetti code"

MVV-Card

Card that shows the next departures at the current location or the default campus.

Maybe including a filter, to only show relevant lines

ASWeekSelector and others

Various compilation problems with ASWeekSelector, CalenderViewController AYSlidingPickerView, MCSwipeTableViewCell, Alamofire, MCSwipeTableViewCell, SWXMLHash, SwiftyJSON
Most errors include "no such module". Tried to "fix" them by committing them with //, but did not help
2016-11-03 22 30 53
2016-11-03 22 31 30
2016-11-03 22 31 47
2016-11-03 22 31 57

Problems / Bugs from Userfeedback

  • Unter more ganz oben wo anfangs der Name stand, steht jetzt nichts mehr #118
  • Klicke ich auf das Defaultbild im Kreis stürzt die App ab #118
  • Noten, Tuition und Vorlesungen werden nicht mehr angezeigt (bei der ersten Benutzung der App wurden diese noch angezeigt)
  • Service und Default Campus lassen sich nicht öffnen #80

RoomFinder: Use map with smaller scale as default

Currently the RoomFinder automatically shows the Munich map when searching for a room. I'd assume most users rather want to see a smaller map, so they find the room inside a building - and not the building inside Munich.

So I guess it makes sense to choose a smaller scaled map by default.

Feature Proposal: New Card for Newest Grades

How about a card that shows your newest Grade? I think it would be quite handy to just take a look at your TUM app and see your newest grade when you receive the email, instead of checking out the website - Or you can see all your grades at once for the semester you're in or something.

Plans

  • MVV Tram
  • MVV complete
  • Campus Garching
  • Campus Klinikum
  • Campus Olympiapark
  • Campus Olympiapark Hallenplan
  • Campus Arcisstraße
  • Campus Weihenstephan

Today Extension / Widget

I would like to create a Today Extension (Widget) for some of the cards like:

  • News
  • Grades
  • Cafeteria
  • Tution
  • Calendar
    -...

Problems:

  1. How should I name the new Targets (one for each card)
  2. How should we share Code between both Targets
  3. How should we share Data between both Targets
  4. Dealing With CocoaPods will be fun

Possible solutions:

  1. NewsWidget, GradesWidget, ...
  2. Put our code in a Framework and share the Framework OR Add our source files to the app extension target (In both cases a few classes have to be rewritten/customized for the app extension)
  3. Create an App Group to share data (name?)

Add RoomFinder to "More" View

Currently the only way to search for rooms is by using the search. A new user however doesn't know this feature exists.

There should be a reference in the more-view. I guess it might just open the search bar?

Card showing rented books and their expiration dates

TUM UB OPAC seems to have an api.
There is an opensource app for accessing opac: which supports the tum opac.
Their api uses this:

"_id":"Muenchen_TU","city":"M\u00fcnchen","api":"sisis","title":"Unibibliothek TUM","account_supported":true,"_active":true,"state":"Bayern","_version_required":0,"information":"http://www.ub.tum.de/so-erreichen-sie-uns/oeffnungszeiten","data":{"baseurl":"https://opac.ub.tum.de/InfoGuideClient.tumsis","startparams":"Login=wotum"}},{"_plus_required":false,"country":"Deutschland","library_id":5606,"geo":[48.1351253,11.5819806],"

The system they use is SISIS Sunrise
Some opensource implementation:
Docs

Everything is session-based, direct hyperlinks are possible to hardly anything

It looks like we have to parse html in order to get this to work. 👎

Refactor URLs

Refactor the creation of URLs by writing all the baseURLs in a JSON file . And finally get rid of all the warnings from Sonarqube

Add MVV Information

  • Create a Card for the MVV Info and a Detail View.
  • Perhaps even allow for search in the Universal Search Screen...

Rückmeldungs Reminder

I think we're still missing a card which reminds the student to pay the fee for the next semester

Prettify time until next lecture

image

245 hours is no really useful information. Maybe we could say something like 10 days and 2 hours?

Or just completely hide this information as long as it's more than 24 hours or something like that?

Implement all the actions in More

  • Tapping on your user should take you to your information Screen.
  • About should take you to a detail view with the about information
  • Send Feedback should open a new email to the TCA Team
  • Logout

Add a card for the MI Bistro

It would be nice if we could somehow use the mi bistro menu from tum.sexy. And either integrate it into cafeteria card or create a new card

Add News

  • Add Card and Detail View
  • Perhaps add a Collection View with more than one Story at the same time.

Release Party - 1.1

@mammuth and I were thinking it's about time to do a release Party!

I'd say that after the next release of 1.1 with all the bug fixes we can all celebrate together!

Since @kordianbruck is always so eager to organize things, I suggest he should be in charge.

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.