{"id":13552301,"url":"https://github.com/Student-Lyf/RamLife","last_synced_at":"2025-04-03T03:31:20.104Z","repository":{"id":38780699,"uuid":"177475393","full_name":"Student-Lyf/RamLife","owner":"Student-Lyf","description":"An app for Ramaz students","archived":false,"fork":false,"pushed_at":"2024-04-10T22:04:41.000Z","size":31609,"stargazers_count":5,"open_issues_count":39,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T14:11:28.298Z","etag":null,"topics":["android","cross-platform","education","flutter","flutter-app","ios","mobile-app","productivity","ramaz","web"],"latest_commit_sha":null,"homepage":"https://ramaz-go.web.app","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Student-Lyf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-24T22:10:55.000Z","updated_at":"2023-05-30T08:22:09.000Z","dependencies_parsed_at":"2022-08-25T08:51:17.231Z","dependency_job_id":"9226aa0b-98c0-400e-80e2-2bd49130445a","html_url":"https://github.com/Student-Lyf/RamLife","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Student-Lyf%2FRamLife","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Student-Lyf%2FRamLife/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Student-Lyf%2FRamLife/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Student-Lyf%2FRamLife/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Student-Lyf","download_url":"https://codeload.github.com/Student-Lyf/RamLife/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933406,"owners_count":20857047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cross-platform","education","flutter","flutter-app","ios","mobile-app","productivity","ramaz","web"],"created_at":"2024-08-01T12:02:01.946Z","updated_at":"2025-04-03T03:31:15.024Z","avatar_url":"https://github.com/Student-Lyf.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"\n# Ramaz Student Life\n\nThis is an app to help Ramaz students navigate their student life.\nIt tells you what classes you have when, the latest sports news, lost and found information, and more.\n\n## Complete list of features: \n- ### Ramaz login\n\tYou can login with your Ramaz email to get your schedule sent directly to the app!\n- ### Schedule explorer\n\tA complete schedule built-in to your phone. It can tell you what you have now, later, or you can specify a letter and schedule (eg, Rosh Chodesh) to explore your schedule. \n- ### Notes\n\tYou can now schedule reminders for individual classes or periods, such as every B-4 or a reminder to bring your textbook to history class. \n\u003c!-- - ### Lunch --\u003e\n\u003c!-- A calendar with all the lunches of the year is right on your phone, so you always know what's for lunch -- and when to use your priveleges. --\u003e\n\u003c!-- - ### Sports --\u003e\n\u003c!-- See upcoming games across all of Ramaz's sports teams. After the games you can see the score and team's overal record. --\u003e\n\u003c!-- - ### Newspapers --\u003e\n\u003c!-- Have instant access to all of Ramaz's student publications, including RamPage, XeVeX, Breakthrough, and more. --\u003e\n\u003c!-- - ### Lost \u0026 Found --\u003e\n\u003c!-- Tired of getting notifications every second when something is lost, but still want everyone else to be notified when **you** lose something? The Lost \u0026 Found feature introduces a chat-based system that notifies only the people involved. An image-recognition based system is coming soon, so finding your lost objects will require less effort than ever. --\u003e\n\n## Your feedback is appreciated\n\nWe want to hear what you have to say, so please use the \"Send Feedback\" button in the app to tell us what you do -- or don't -- like, and we'll work on it.\n\n# Contributing\n\nThis repo is to be modified *only* by the Ramaz Coding Club. It follows a simple yet sophisticated structure, in addition to the standard Flutter folders. Here is a rundown of everything you need to know: \n\n- ## The `android` folder: \n\n\tThis folder contains Android-specific implementation details. The only notable files in it are the gradle configurations: `gradle.properties`, `build.gradle`, and `app\\build.gradle` (which have been changed to configured Firebase). An adjustment was made to `gradle\\wrapper\\gradle-wrapper.properties` to upgrade to the latest version of Gradle. Android-specific assets are stored under `app\\src\\main\\res`, and modifications have been made to `AndroidManifest.xml` accordingly.\n\n- ## The `data` folder: \n\n\tThis folder is not meant to be public. It is basically a collection of `.csv` versions of the Ramaz database. The naming convention here is simple: make everything lowercase, remove `RG_`, and make abbreviations into the full word. For example, `RG_SECT_SCHED` should be saved as `data\\section_schedule.csv`. This is essential for the data processing (in the `firebase` folder) to work. Also included is the `calendar.csv` file needed for calendar parsing.\n\n- ## The `doc` folder: \n\n\tOK, so this folder is also absent from GitHub. But it's super simple to generate. Just run `dartdoc` in this repo and the full documentation will be saved here.\n\n- ## The `firebase` folder: \n\n\tThis folder contains scripts whose sole purpose is to configure Google Firebase. This basically means configuring the database and authentication services based on data from the Ramaz database. It contains two more folders, `data` and `database` whose jobs are to handle data modeling and database configuration, respectively. Another notable file here is `auth.py`, which manages the FirebaseAuth API. \n\n- ## The `images` folder: \n\n\tThis folder contains image assets for the project. They are imported in the `pubspec.yaml` file. There are two child folders: \n\n\t- ### The `icons` folder: \n\t\tThis folder contains basic icons used throughout the app\n\n\t- ### The `logos` folder: \n\t\tThis folder contains logos used for various services throughout the app. Note that despite the use of this iconography, excluding Ramaz, we do not claim any ownership whatsoever of these brands. The `ramaz` folder contains Ramaz-specific branding.\n\n- ## The `ios` folder: \n\t\n\tThis folder contains iOS-specific modifications, including Firebase configuration and asset bundling. \n\n- ## The `lib` folder: \n\t\n\tThis is, where the main Dart code lies. This will be discussed in detail next section. \n\n## Code related folders:\n\n  Inside `lib\\`, there are five libraries, each of which define a different part of the structure of the app. Each library two sections -- a folder under `lib\\src`, containing all the code, and a file under `lib\\`, which declares the library (sort of like a header file).\n\n  - ### The `data` library: \n\n  \tThis library contains data models for everything in the app, separated into files by topic. Here, all the business logic is implemented either as complex factories or methods. \n\n  - ### The `services` library: \n\n  \tThis library contains abstractions over many different APIs (data sources), separated into files by API.  \n\n  - ### The `services_collection` library: \n\n\t  This library contains logic for initializing the services. It can act as a wrapper around all the services, so function and constructor signatures can remain the same even after services are added or removed. \n\n- ### The `models` library: \n\t\t\n\tThis library contains two types of models: \n \t1. Data models. Data models control the state of the data across the lifespan of the app. The user profile is a good example of a data model, since it needs to be accessible to all code. \n \t2. View models. view models control the state of data in an element of UI, such as a page. View models can interact with data models to get their data, and should generally have a field for every label, and a method for every input action in the UI. \n\n - ### The `widgets` library: \n\n  \tThis folder contains UI elements (\"widgets\") that are independent enough from the rest of the screen to be able to be imported and used reliably anywhere in the app (even if they in reality aren't). There are a few categories of widgets: \n\n  \t1. Ambient widgets are widgets that are exposed to the whole app (usually via [`InheritedWidgets`](https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html)).\n  \t2. Atomic widgets are widgets that represent individual pieces of data. They should be used throughout the app exclusively to represent those data types. \n  \t3. Generic widgets are miscellaneous widgets that help compose the UI.\n  \t4. Other helper widgets to display images and iconography throughout the UI. \n\n  - ### The `pages` library: \n\n  \tThis library contains all the screens of the app, separated into files. These files may import data templates (from `data`), APIs (from `services`), page states (from `models`), or other UI elements (from `widgets`). \n\n ## Running the app: \n\n To run the app, make sure you have [Flutter](https://flutter.dev) installed, and run these commands: \n\t\u003cpre\u003e\n\t\tgit clone https://github.com/Levi-Lesches/Ramaz-Student-Life.git\n\t\tcd ramaz\n\t\u003c/pre\u003e\n\nTo be able to run and debug the app, run `flutter run`. To simply download it, run `flutter build apk` or `flutter build ios`, plug in your phone and run `flutter install`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FStudent-Lyf%2FRamLife","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FStudent-Lyf%2FRamLife","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FStudent-Lyf%2FRamLife/lists"}