impact_exchange_hackathon_-_se4gd.pdf

HACKATHON SUBMISSION

Idea

Our app aims to enhance the learning experience in educational institutions by incorporating a robust peer review system for course assignments. This platform is designed to foster collaborative learning, improve critical thinking, and provide students with diverse feedback from their peers. The app is accessible both via web and mobile devices, ensuring seamless interaction and usability. Key Features:

Web Application:

For Teachers:

Assignment Creation: Teachers can create and manage assignments, set deadlines, and define review criteria.

Review Management: Monitor the peer review process, assign reviewers, and approve final grades.

For Students:

Submit Assignments: Upload assignments, track submission status, and view deadlines.

Peer Review Participation: Review peers' assignments based on predefined criteria and provide constructive feedback.

Receive Feedback: View feedback from peers and teachers, and engage in discussions for further clarification.

Mobile Application:

For Students:

Submit Assignments: Easily upload assignments directly from mobile devices.

Peer Review: Conduct peer reviews on-the-go, ensuring flexibility and convenience.

Feedback Access: Receive and read feedback from peers and teachers anytime, anywhere.

Implementation Phases

1. Idea Brainstorming

In the initial phase, we conducted brainstorming sessions with team members to generate and refine ideas for the peer review app. The goal is to identify essential features and functionalities to implement because we have a very short time.

2. Low Fidelity Design

Next, we developed low-fidelity wireframes for both the web and mobile applications. These wireframes gives the the basic layout and user flow, providing a visual representation of the app's structure.

3. Database Model Design

In this phase, we designed the database structure necessary to support the app's functionalities. This includes identifying key data entities, creating an Entity-Relationship Diagram (ERD), and defining the database schema and tables. The goal is to ensure a robust and scalable data model.

Feedback on Practicality of Guidelines

Web Front End:

- Overall project guidelines were good and explained fully but with reference to a developing project industry where u have to follow a complete route for more good project but in case of hackathons where there is time shortage u dont need to go too much into details like prototyping, project management and user stories. - Regarding proje ct setup the guidelines were brief and up to point helping the participant to manage the work effectively but i m not convinced to using material UI as the css framework if i m considering sustainability, otherwise its a great framework. The reasons are as follows:

Material UI is a component based framework that makes it a larger bundle size instead of others like bootstrap or tailwind which is class based only.

Javascript overhead will be higher in material UI so its not more enrergy efficient but on the other hand tailwind have static css files that makes it efficient.

- When coming to implementation guidelines. These were good and very helpful but it would have been better if we had a video performing all those steps it makes it more easy to understand. Because for noob developers its very difficult to go through a pile of docs when learning a new technology. Video makes it interactive and you can alse see the response exactly.

Mobile Front End:

Practicality of guidelines for setup and learning the technology & framework:

- First of all, I realized that if a person is new to Flutter or mobile development, just the documentation is not enough. So I improved the guidelines and added a beginner friendly crash course from youtube. - From the resources, I was able to use the youtube video resource to set up the environment for flutter. It's easier on VS code but a little tricky on Flutter. - All the other documentation is more helpful for someone who already is familiar with Flutter and just wants to look up some information from documentation.

Practicality of guidelines for achieving efficiency: - From the design guidelines I got to understand, flutter apps must be inclusive and engaging. Then how can I make the app inclusive or accessible to all (semantic markup, visual contrast etc.). - From efficient UI guidelines, I got to implement code as structured and modular. Maintain a consistent typography and theming throughout the app to create a cohesive look and feel (usage of ThemeData and TextTheme for app styling). Flutter’s smaller, reusable widgets for code reusability and maintainability. Flutter tools like ListView.builder and GridView.builder for efficient rendering to improve app’s performance. - From State management guidelines, I first learnt why proper state management is important because it ensures that your app responds quickly, makes code-base less error-prone and more maintainable, and facilitates unit-testing. - Techniques for efficient state management SetState, Inherited Widget, Provider, Redux, GetX, BloC and to understand when to use which approach. - From efficient API data handling, got to know about Provider for efficient data handling and known for its simplicity and scalability. Learned (technique used to split large datasets into smaller, manageable chunks, thus enhancing performance and user experience) using Provider in Flutter to manage API data efficiently. - Pagination reduces the load on the app and server, leading to faster response times and smoother user interactions.

Needs improvement: - Make Beginner friendly - More details on dev tools for measuring metrics