Skip to content

Commit

Permalink
Merge pull request #49 from angrezichatterbox/main
Browse files Browse the repository at this point in the history
Reorganizing the code according to GetX standard
  • Loading branch information
angrezichatterbox authored Jan 10, 2025
2 parents 83776dc + 145ed01 commit 51de26b
Show file tree
Hide file tree
Showing 13 changed files with 223 additions and 208 deletions.
6 changes: 0 additions & 6 deletions .vscode/settings.json

This file was deleted.

4 changes: 2 additions & 2 deletions lib/controllers/homepage/course_summary_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:bunk_mate/utils/api_endpoints.dart';
import 'package:http/http.dart' as http;
import 'dart:core';
import 'dart:io';
import 'package:bunk_mate/screens/OnBoardView.dart';
import 'package:bunk_mate/screens/on_board_view.dart';

class CourseSummaryController extends GetxController {
var courseSummary = <CourseSummary>[].obs;
Expand Down Expand Up @@ -55,7 +55,7 @@ class CourseSummaryController extends GetxController {
print("Task Done");
}
else if (response.statusCode == 404) {
Get.offAll(const TimetableView());
Get.offAll(const OnBoardView());
}
} catch (error) {
print('Error fetching course summary: $error');
Expand Down
9 changes: 9 additions & 0 deletions lib/controllers/navigation/navigation_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import 'package:get/get.dart';

class NavigationController extends GetxController {
var currentIndex = 0.obs;

void updateIndex(int index) {
currentIndex.value = index;
}
}
50 changes: 50 additions & 0 deletions lib/controllers/onBoard/on_board_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import 'package:bunk_mate/models/on_board_model.dart';
import 'package:bunk_mate/services/on_board_service.dart';
import 'package:bunk_mate/utils/navigation.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart';

class OnBoardController extends GetxController {
final OnBoardService _service = OnBoardService();
RxList<dynamic> presets = [].obs;
RxString startDate = DateFormat("yyyy-MM-dd").format(DateTime.now()).obs;
String timeTableName = "";
int minAttendance = 0;
RxString endDate = DateFormat("yyyy-MM-dd")
.format(DateTime.now().add(const Duration(days: 30)))
.obs;
RxBool isShared = false.obs;

@override
void onInit() {
super.onInit();
_loadPresets();
}

Future<void> _loadPresets() async {
presets.value = await _service.getTimeTable();
}

void submit() {
if (endDate.value.isNotEmpty &&
startDate.value.isNotEmpty &&
timeTableName.isNotEmpty &&
minAttendance != 0) {
OnBoardModel timetable = OnBoardModel(
name: timeTableName,
minAttendance: minAttendance,
startDate: startDate.value,
endDate: endDate.value,
isShared: isShared.value,
);
_service.submitTimetable(timetable).then((_) {
Get.snackbar("Success", "TimeTable has been created");
Get.off(const Navigation());
}).catchError((error) {
Get.snackbar("Error", "Could not create timetableld");
});
} else {
Get.snackbar("Error", "Please enter all details!");
}
}
}
2 changes: 1 addition & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:bunk_mate/screens/auth/login_screen.dart';
import 'package:bunk_mate/utils/Navigation.dart';
import 'package:bunk_mate/utils/navigation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get/get.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
class TimetableModel {
class OnBoardModel {
String name;
int minAttendance;
String startDate;
String endDate;
bool isShared;

TimetableModel({
OnBoardModel({
required this.name,
required this.minAttendance,
required this.startDate,
Expand Down
8 changes: 4 additions & 4 deletions lib/screens/TimeTable/time_table_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:intl/intl.dart';
import 'package:bunk_mate/controllers/timetable/time_table_controller.dart';

class TimeTableEntry extends StatefulWidget {
const TimeTableEntry({Key? key}) : super(key: key);
class TimeTablePage extends StatefulWidget {
const TimeTablePage ({super.key});

@override
State<TimeTableEntry> createState() => _TimeTableEntryState();
State<TimeTablePage> createState() => _TimeTablePageState();
}

class _TimeTableEntryState extends State<TimeTableEntry> {
class _TimeTablePageState extends State<TimeTablePage> {
final TimeTableController controller = Get.put(TimeTableController());
static const Map<int, String> days = {
1: "Monday",
Expand Down
21 changes: 10 additions & 11 deletions lib/screens/auth/login_screen.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:bunk_mate/screens/auth/signup_screen.dart';
import 'package:bunk_mate/screens/easter_eggs.dart';
import 'package:bunk_mate/utils/Navigation.dart';
import 'package:bunk_mate/utils/navigation.dart';
import 'package:flutter/material.dart';
import 'package:bunk_mate/controllers/auth/login_controller.dart';
import 'package:get/get.dart';
Expand All @@ -13,7 +13,8 @@ class AuthScreen extends StatefulWidget {
State<AuthScreen> createState() => _AuthScreenState();
}

class _AuthScreenState extends State<AuthScreen> with SingleTickerProviderStateMixin {
class _AuthScreenState extends State<AuthScreen>
with SingleTickerProviderStateMixin {
LoginController loginController = Get.put(LoginController());
late AnimationController _animationController;
late Animation<double> _fadeAnimation;
Expand All @@ -31,7 +32,8 @@ class _AuthScreenState extends State<AuthScreen> with SingleTickerProviderStateM
vsync: this,
duration: const Duration(milliseconds: 1000),
);
_fadeAnimation = Tween<double>(begin: 0.0, end: 1.0).animate(_animationController);
_fadeAnimation =
Tween<double>(begin: 0.0, end: 1.0).animate(_animationController);
_animationController.forward();
}

Expand Down Expand Up @@ -143,6 +145,7 @@ class _AuthScreenState extends State<AuthScreen> with SingleTickerProviderStateM
),
);
}

Widget _buildAuthField({
required TextEditingController controller,
required IconData icon,
Expand Down Expand Up @@ -170,7 +173,8 @@ class _AuthScreenState extends State<AuthScreen> with SingleTickerProviderStateM
hintStyle: GoogleFonts.lexend(color: secondaryTextColor),
prefixIcon: Icon(icon, color: accentColor),
border: InputBorder.none,
contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
contentPadding:
const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
),
),
);
Expand Down Expand Up @@ -216,12 +220,7 @@ class _AuthScreenState extends State<AuthScreen> with SingleTickerProviderStateM
),
GestureDetector(
onTap: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => const Registration(),
),
);
Get.off(const SignupScreen());
},
child: Text(
"Sign up",
Expand All @@ -234,4 +233,4 @@ class _AuthScreenState extends State<AuthScreen> with SingleTickerProviderStateM
],
);
}
}
}
8 changes: 4 additions & 4 deletions lib/screens/auth/signup_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_fonts/google_fonts.dart';

class Registration extends StatefulWidget {
const Registration({super.key});
class SignupScreen extends StatefulWidget {
const SignupScreen({super.key});

@override
_RegistrationState createState() => _RegistrationState();
_SignupScreenState createState() => _SignupScreenState();
}

class _RegistrationState extends State<Registration> with SingleTickerProviderStateMixin {
class _SignupScreenState extends State<SignupScreen> with SingleTickerProviderStateMixin {
final SignupController signupController = SignupController();
late AnimationController _animationController;
late Animation<double> _fadeAnimation;
Expand Down
6 changes: 3 additions & 3 deletions lib/screens/homepage/homepage_screen.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:bunk_mate/screens/OnBoardView.dart';
import 'package:bunk_mate/screens/on_board_view.dart';
import 'package:bunk_mate/screens/auth/login_screen.dart';
import 'package:bunk_mate/utils/Navigation.dart';
import 'package:bunk_mate/utils/navigation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:bunk_mate/controllers/homepage/course_summary_controller.dart';
Expand Down Expand Up @@ -259,7 +259,7 @@ class HomePageState extends State<HomePage> {

void _handleMenuSelection(int value) async {
if (value == 0) {
Get.to(const TimetableView());
Get.to(const OnBoardView());
} else if (value == 2) {
await _handleLogout();
}
Expand Down
Loading

0 comments on commit 51de26b

Please sign in to comment.