/UniPal-Frontend

A UniPal cross-platform app made with Flutter SDK

Primary LanguageDart

UniPal App - Made With Flutter

A university app to solve problems of socializing, scheduling, course selection and acheivement sharing etc.

Backend

For the backend it uses a REST API made using NodeJS and MySQL. Here is the link to it's code UniPal_Backend

Important

Due to privacy and resource abuse concerns I have kept the url of the backend API private and you won't be able to see it. Therefore, if you want to work with this project and make your own edits, than you also need to deploy the backend on your own and pass the URL to the flutter app. Don't be confused, you CAN use my backend code provided above, you just have to deploy it on a server of your own. There are plenty of free options including:

  • Heroku
  • AWS Free Tier
  • Azure etc.

For more instruction visit the backend README.

Once deployed, pass the url while running the flutter app like this:

// Replace your-url-here with your own deployed URL like "https://example.com/api/v1"
flutter run --dart-define=BASE_URL="your-url-here"

✨ App Features

  • Authentication.
  • Student Finder w/ Filters.
  • Connections and Hangouts Requests.
  • Timetable Generator.
  • Timetable Overlap Checker.
  • Teacher Reviews Forum.
  • Memories and Acheivements Feed.

🔧 Technical Features

Riverpod State Management - v1.0.3 Dio + Interceptors For JWT Refresh
Freezed + Flutter Hooks For JSON Handling Custom Wrapper For Shared Prefs + Flutter Secure Storage
Clean Architecture Session persistence and encrypted key storage
Reusable services architecture and code Custom reusable widgets
Full documentation Linting + Custom Analyzer Rules

📱 Screens

Splash Screen Home Screen Login Screen
Register Screen Posts Screen Create Post Screen
Connections Screen Hangouts Received Screen Hangouts Sent Screen
Student Finder Screen Scheduler Screen Student Finder Tab 2
Generated Timetables Timetable Viewer Timetable Viewer 2
Teacher Forum Tab Teacher Reviews Screen My Profile About Screen
My Profile Preferences Student Profile Preferences Student Profile About

⭐ Installing

This project is a starting point for a Flutter application. These series of steps need to be followed for the app to run:

1. Make sure you are on Flutter v3.0.0 and Dart SDK 2.18
2. If not, run `flutter uprade`.
3. Open project dir and run this command in root directory
    ```
    flutter pub get
    ```
4. Since the project uses code generation, alot of the files are missing initially. To generate them run this in root dir
    ```
    flutter pub run build_runner build --delete-conflicting-outputs --enable-experiment=super-parameters

🚀 Technologies

🤝 Contribute

To contribute, fork the repository and push the changes to the master branch. Then submit a pull request for merging with the source. If your code passes the review and checks it will be merged into the master branch.

💬 Feedback

Feel free to send us feedback on Twitter or file an issue. Feature requests are always welcome.

📝 License

Licensed under the MIT License.