An native android application of Government College of Engineering and Ceramic Technology
Our university website was not properly optimised and responsive for mobile devices which posed difficulties for students to navigate and to utilise all the features the website has to offer. Also some times students are missing important notices as they don't get any notification. Also to view a simple notice all students need to download the notice from the website. Our university website Ui also not so user friendly and informative for new comers also there has not any discussion or helping. Altogather we can achieve a lot of functionality using an user friendly mobile application. Therefore we, team GDSC-GCECT come with an idea of an user friendly android app named "GCECT APP".
This project proposes a university app that has all the features of the university website with some extra added features and a good user interface. As in each page of our website, all the information's are messy and not cleared therefore our first target is a good user interface that makes every detail attractive to all. On our college's website, for a less important notice, we need to download the pdfs therefore we made a pdf viewer section in our app where users can read the notice without downloading it. We also add functionality to download the notice if required. Also through an app students can get the update of important notices and also there should be a discussion forum in the app where students can discuss their doubts and teachers can share their notes and assignments directly through the app to all of the students. Students also can take short notes which can be saved offline. Also in our different college fests there we need different websites which are not maintained later on. So we can integrate all the necessary things regarding fests directly to the app therefore there will not be required a separate website for a separate fest or events. Not only that, many many more functionality could be added to the app which will make the app more useful to both students and teachers but this will not be possible on a website. Actually, it is an ongoing project, and we are trying to make it our college's official app.
Some features that are included in the app are:
- A good UI/UX to make every page more attractive and informative
- recent announcements
- general notice
- download examination schedule
- a note taking section
The App has a very simple, interactive, clean and attractive interface which helps the students to get all the informations of college like notice, faculty detail, syllabus, last year question paper etc. Following are few android concepts used to achieve the functionalities in app:
-
Kotlin - First class and official programming language for Android development. Our app is totally written in kotlin.
-
Different Layouts - In this app we have used difrenet layouts to make the app UI responsive. The used layouts are LinearLayout, RelativeLayout, ConstraintLayout, FrameLayout and CoordinatorLayout.
-
Material Components for Android - Modular and customizable Material Design UI components for Android. We used material components like MaterialCardView, MaterialButton etc to make the UI attractive and amke the development easy.
-
Coroutines - For asynchronous and more. Speacially used at the time of PDF fetching from url.
-
Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes. Highly used shared viewmodel in the app.
- Data Binding - The Data Binding Library is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically. Used two data binding in each fragments.
- Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app. In our app we followed single app architecture using navigation and also implemented an unique nav nav drawer.
- Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite. To store notes.
- LiveData - LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services. To check new notes added or not.
-
Firebase - Firebase is Google's mobile application development platform that helps you build, improve, and grow your app.
- Storage - Cloud Storage for Firebase lets you upload and share user generated content, such as images and video, which allows you to build rich media content into your apps. Here we used store to add static data.
-
Glide - Glide is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface. We have used it for image loading.
-
BottomSheet - Bottom sheets are surfaces containing supplementary content that are anchored to the bottom of the screen. To show the general notice list in home page.
-
RecyclerView - RecyclerView makes it easy to efficiently display large sets of data. To show large lists.
-
MVVM - MVVM architecture is a Model-View-ViewModel architecture that removes the tight coupling between each component. In the note taking section we used MVVM.
-
ViewPager2 - ViewPager2 objects have built-in swipe gestures to transition through pages, and they display screen slide animations by default. Using ViewPager2 and tablayout we have used a slidable fragment.
-
TabLayout - TabLayout provides a horizontal layout to display tabs.Using ViewPager2 and tablayout we have used a slidable fragment.
-
Android PdfViewer - To view PDFs from url inside app.
-
Some more 3rd party libraries used in this project :
- CircularImageView - This is an Android project allowing to realize a circular ImageView in the simplest way possible. To make image view circular we have implented it in gate ranker list.
- Android-Image-Slider - An amazing image slider for the Android. In home fragment and Nss fragment we have used Auto Image Slider.
- PRDownloader - A file downloader library for Android with pause and resume support. We used to download PDF files.
- Dexter - Dexter is an Android library that simplifies the process of requesting permissions at runtime. We used to take External Storage Read and Write permission from the user.
-
Click Here to download the latest apk.
- Android 6.0 and Above
- Min sdk version 23
- Internet
- Storage
For the time being we are working with static datas of the website. After completiing all the tasks with static datas, our principal sir had promised that he would give us the access of the database of our college website. According with developer team, we have made a UI team and a Testing team to make the app production ready. Also we have planned to add realtime notification services, discussion pannel, class notes adding section and a library management system. And whenever it will be publication ready then we will upload it to the playstore and it will be our official college app.
- Before start your contribution please go through our contribution guideline carefully. (READ)
- You need to push your PR on develop branch only.
- Join your whatsapp group for further discussion.CLICK HERE TO JOIN.
Sitam Sardar |
Kunal Kayal |
Chayan Das |
Dhiraj Chauhan |
Sagar Khurana |
MIT License
Copyright (c) 2022 ByteMonk-GCECT Tech Club
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.