In short, Rutgers Course Tracker (RCT) allows users to view courses and subscribe to their openings. Inspired by Abe Stanway's Schedule Sniper and Vaibhav Verma's python Sniper.
Additionally, users can view information about current and upcoming semesters. This includes prerequisites, course specific information and even professor ratings and details. Once a section of course is tagged to be tracked, the app checks for openings at user selectable interval.
I started this project on January 14th 2015 out of desperation. Other "course sniping" solutions out there are focused on the New Brunswick campus, leaving me with very few options. In a few days I threw together something simple and it worked quite well. I began work on a full version and within a few weeks it was stable and presentable enough to be my first app on the Google Play Store.
RCT was developed in my spare time using Android Studio and Intellij 14.04. It was designed to take advantage of the Model-View-Presenter (MVP) architectural pattern which enabled me to create a robust, extensible and testable code base.
I owe the speed at which I developed the application to many open source libraries. Each one of them likely saved me from days of headaches, debugging and testing. 3 of them in particular, RxJava, Retrofit and Dagger, greatly simplified my business code and reduced some very complex logic to child's play. I highly recommend using any of these libraries in you own applications.
- Android SDK.
- Android 8.1 (API 27) .
- Android SDK Tools (Gradle 3.0+)
- Android SDK Build tools 26.0.2
- MinSdkVersion 19
The libraries and tools used include:
- Android Support Library 27
- Android Architecture Components (Room, LiveData, ViewModel)
- Firebase (Analytics, Messaging, Performance, Crash Reporting)
- RxJava 2 and RxAndroid
- Retrofit 2 and OkHttp
- Dagger 2
- Timber
- Wire and wire-gradle-plugin
- AppIntro
- Once
- IcePick
- Material Dialogs
and more...
Copyright 2018 Tevin Jeffrey.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.