Varun-Kolanu / csoc_flutter

Flutter project for introducing flutter to freshers
2 stars 8 forks source link

[FEAT] Project idea #1

Closed Varun-Kolanu closed 2 weeks ago

Varun-Kolanu commented 1 month ago

Is your feature request related to a problem? Please describe. The idea for the project to choose is not yet decided. We could have chosen it, but as this project is everyone's, you have liberty to suggest ideas.

Describe the solution you'd like Suggest an idea by 30th May EOD to work on the following 4 weeks. The idea should be useful for everyone and unique.

Describe alternatives you've considered If none of the solutions are feasible or useful, we will decide any new idea that everyone can follow and is unique.

saikat-iit commented 1 month ago

Idea Proposal: Music Download App

Problem Statement:

Solution Overview:

Key Features:

devrungta commented 1 month ago

Social Media App Features:-

Implementation Plan

Evaluation Criteria

Varun-Kolanu commented 1 month ago

Social Media App Features:-

  • User Authentication_ Sign Up / Login: Safe registration and login. Logout: Safe logout function. Also remember the IP or the google account on the phone, or use tokens, so we don't have to login again and again
  • User Profiles Profile Management: Users can update their information selectively like bio and pfp and all, but not birthdate and gender and other things. View Profiles: Users can view other peoples' profiles.
  • Posts Create Post: Users can post text, images, and videos. Edit/Delete Post: Users can modify or remove their posts.
  • Feed Timeline Feed: Display posts from followed users. Like, Comment, Share and Save functions.
  • Notifications Real-Time Notifications: Notifications about activities likes, comments, and follows.
  • Search and Follow Search Users: Users can find other users using username or real name. The ones closer geographically should come up first (for same names) Follow/Unfollow: Users can follow or unfollow others.
  • DMing One-on-One Chat: Real-time messaging. Group Chat
  • Advanced Features Story Feature Create and View Stories
  • Live Streaming This will be tough I think
  • Advanced Search Filter by Hashtags and Locations

Implementation Plan

  • Project Setup: Create a new Flutter project and set up Firebase.
  • Authentication: Implement registration and login with Firebase Auth.
  • Profile Management: Develop profile features.
  • Posts and Feed: Create UI for posts and display them in a feed.
  • Notifications: Use Firebase Cloud Messaging for notifications.
  • Search and Follow: Implement user search and follow features.
  • Direct Messaging: Develop real-time chat.
  • Advanced Features: Add stories, live streaming, advanced search, notifications.

Evaluation Criteria

  • Functionality: Are features working as expected?
  • Code Quality: Is the code clean and maintainable?
  • UI/UX Design: How user-friendly and visually appealing is the app?
  • State Management: Effective use of state management.
  • Performance: Is the app responsive?
  • Innovation: Any creative features beyond the basics? Basically Instagram with less features

Nice idea for learning. But it would be better if we implement something unique which no one has ever built or failed to build. Social media app is available in many youtube videos, and it has become a cliche tbh. Think like this ki, instagram is already available on playstore. Why would any user use ours when an authentic insta exists from Meta already...

criticic commented 1 month ago

For the music downloader app we should probably use something like yt-dlp, as scraping instagram, and also avoid ratelimits and other protections would prolly be pretty hard

also how will we search the full track?

Varun-Kolanu commented 1 month ago

For the music downloader app we should probably use something like yt-dlp, as scraping instagram, and also avoid ratelimits and other protections would prolly be pretty hard

also how will we search the full track?

Yeah it seems to be hard. This should be the app which anyone can follow from beginners to advanced programmers. For How to part, let's ask if @saikat-iit has any implementation he thought of..

And it's not restricted to give only 1 idea. You can give as many ideas as you can. We'll select the best and feasible one

saikat-iit commented 1 month ago

For the music downloader app we should probably use something like yt-dlp, as scraping instagram, and also avoid ratelimits and other protections would prolly be pretty hard

also how will we search the full track?

Yeah it seems to be hard. This should be the app which anyone can follow from beginners to advanced programmers. For How to part, let's ask if @saikat-iit has any implementation he thought of..

And it's not restricted to give only 1 idea. You can give as many ideas as you can. We'll select the best and feasible one

Actually I don't have a solid Idea on how to achieve this right now. But I was thinking about using concept of Audio Fingerprint and Open Source Libraries like EchoPrint. But unfortunately the Library is not getting maintained, So I don't know if this might work, as EchoPrint uses it's own Database, and I don't know if Spotify API have the concept of Audio Fingerprint.

Come to think of it, it's not a good beginner's project, as I am unsure about it's success rate.

I'll think about something else which is unique that has real life usage.

criticic commented 1 month ago

A couple of ideas off the top of my head, not really that unique but here:

1) Something like https://anilist.co/ but for Movies/Shows/Books

2) Expense Manager

3) Complicated Alarm Clock

saikat-iit commented 1 month ago

A couple of ideas off the top of my head, not really that unique but here:

1) Something like https://anilist.co/ but for Movies/Shows/Books

  • I would really love to use something like this to track all the movies I have ever watched, I cant find a good place (with a simple ui and less clicks) where it shows me not only the list of movies, but also the total watch time (in days), or watche over the years or somehting
  • would utilize a lot of things used in apps, grids, imageviews, layouts, and would also prolly use an api like tmdb
  • Could find lots of intersting designs on dribbble

2) Expense Manager

  • similar to the now deprecated salt passbook app
  • one would enter his expenses, and category and all, and would be shown spending across various categories in a month year etc
  • (no idea how It could be implemented) automatically categorize from just text input like the salt app (so writing "canteen maggi 35" would automatically add a +35 expense with name "canteen maggi" and categorize it as food) Cons
  • Without the automatic categorization feature, it would be way too manual, and would basically be like a upgraded todo app

3) Complicated Alarm Clock

  • Basically we could have various mechanisms to stop the alarm, like solve a math problem, or just some task like taking photos (of something) using the camera, shouting in the microphone etc

I liked the concept of Complex Alarm.

Instead of Maths Problem (as it will restrict no. of users) (what if the person don't know maths), Using ReCAPTCHA v1 to stop the alarm will be fun 😂.

Combined Idea Proposal: Captcha Alarm

Concept:
A alarm system that integrates Captcha technology to ensure users actively engage with the alarm to turn it off.

Features:

Varun-Kolanu commented 1 month ago

A couple of ideas off the top of my head, not really that unique but here:

1) Something like https://anilist.co/ but for Movies/Shows/Books

  • I would really love to use something like this to track all the movies I have ever watched, I cant find a good place (with a simple ui and less clicks) where it shows me not only the list of movies, but also the total watch time (in days), or watche over the years or somehting
  • would utilize a lot of things used in apps, grids, imageviews, layouts, and would also prolly use an api like tmdb
  • Could find lots of intersting designs on dribbble

2) Expense Manager

  • similar to the now deprecated salt passbook app
  • one would enter his expenses, and category and all, and would be shown spending across various categories in a month year etc
  • (no idea how It could be implemented) automatically categorize from just text input like the salt app (so writing "canteen maggi 35" would automatically add a +35 expense with name "canteen maggi" and categorize it as food) Cons
  • Without the automatic categorization feature, it would be way too manual, and would basically be like a upgraded todo app

3) Complicated Alarm Clock

  • Basically we could have various mechanisms to stop the alarm, like solve a math problem, or just some task like taking photos (of something) using the camera, shouting in the microphone etc

Hmm cool. Anilist is nice. Expense manager is also good with that automatic categorization. Alarm clock wala Alarmy app me already hai na. Ye mera roommate use karta tha and mujhe deta tha utke to solve and wo so jaata 😂

devrungta commented 1 month ago

Meta

I hoped to give simple idea and I actually forgot about the YT tutorials for app dev... I thought this would be easy and test a lot of things...

devrungta commented 1 month ago

A couple of ideas off the top of my head, not really that unique but here:

1) Something like https://anilist.co/ but for Movies/Shows/Books

  • I would really love to use something like this to track all the movies I have ever watched, I cant find a good place (with a simple ui and less clicks) where it shows me not only the list of movies, but also the total watch time (in days), or watche over the years or somehting
  • would utilize a lot of things used in apps, grids, imageviews, layouts, and would also prolly use an api like tmdb
  • Could find lots of intersting designs on dribbble

2) Expense Manager

  • similar to the now deprecated salt passbook app
  • one would enter his expenses, and category and all, and would be shown spending across various categories in a month year etc
  • (no idea how It could be implemented) automatically categorize from just text input like the salt app (so writing "canteen maggi 35" would automatically add a +35 expense with name "canteen maggi" and categorize it as food) Cons
  • Without the automatic categorization feature, it would be way too manual, and would basically be like a upgraded todo app

3) Complicated Alarm Clock

  • Basically we could have various mechanisms to stop the alarm, like solve a math problem, or just some task like taking photos (of something) using the camera, shouting in the microphone etc

I liked the concept of Complex Alarm.

Instead of Maths Problem (as it will restrict no. of users) (what if the person don't know maths), Using ReCAPTCHA v1 to stop the alarm will be fun 😂.

Combined Idea Proposal: Captcha Alarm

Concept: A alarm system that integrates Captcha technology to ensure users actively engage with the alarm to turn it off.

Features:

  • Captcha Integration:

    • Requires users to solve a Recaptcha V1 puzzle to deactivate the alarm.
  • Enhanced Engagement:

    • Promotes cognitive engagement by requiring users to solve a Captcha, ensuring they are fully awake and alert.
  • Security:

    • Adds an extra layer of security by verifying the user's humanity before allowing them to silence the alarm.

We could give them multiple options to try and give them more ways to disarm the alarm. or, we could use the GPS system of the phone and disarm the alarm only when the user has moved a certain distance that they choose with a minimum distance being set by us as an option. we could also apply a resistance for VPN. We could make it so the alarm keeps getting louder. A feedback system for how much you have walked in a day, week, month and time charts on how long you take for the task, speed charts and some more analytics to give the user an idea of their workout.

devrungta commented 1 month ago

Proposal A special calendar app for lazy or forgetful people.

Features

Implementation Plan

Evaluation Criteria

Varun-Kolanu commented 1 month ago

@devrungta Hehe nice one actually. I forget almost everything 😭

In attendance tracking, I am too lazy to open the app and mark attendance. So I deleted the app eventually 😅 For this, the following can be done:

  1. There should be a time, which user choses. At that time daily on working days, app sends a notification to mark attendance.
  2. We can put a feature that user can save his classroom location. So, whenever he comes inside some radius, with class as center, app sends a notification whether to mark attendance for that class.

It might be so repetitive to create the time table of the class. So, in the Social Integration section we can add the following features:

  1. User can see the friends' time table created. Then there will be a button to copy the same time table.
  2. A user can choose who can see their attendance: Friends, Everyone, No one
  3. Generally, if we forget to mark whether class was cancelled we will not be able to remember what happened. So, the cancellation of classes will be visible to the friends no matter what, because no privacy is getting disturbed in that. Then, a friend can see the class cancellations from other friends and mark the same in his.
  4. We can request our friends to mark proxy. Friends can accept or reject the request. Only one user can accept the proxy request. When a friend has accepted a proxy request, all the other requests to friends will be revoked. Then the accepted friend can mark whether he was successful in marking proxy or not. Based on that, the attendance of that day will be automatically marked as proxied or absent in the user's time table.
saikat-iit commented 1 month ago

@devrungta Hehe nice one actually. I forget almost everything 😭

In attendance tracking, I am too lazy to open the app and mark attendance. So I deleted the app eventually 😅 For this, the following can be done:

  1. There should be a time, which user choses. At that time daily on working days, app sends a notification to mark attendance.
  2. We can put a feature that user can save his classroom location. So, whenever he comes inside some radius, with class as center, app sends a notification whether to mark attendance for that class.

It might be so repetitive to create the time table of the class. So, in the Social Integration section we can add the following features:

  1. User can see the friends' time table created. Then there will be a button to copy the same time table.
  2. A user can choose who can see their attendance: Friends, Everyone, No one
  3. Generally, if we forget to mark whether class was cancelled we will not be able to remember what happened. So, the cancellation of classes will be visible to the friends no matter what, because no privacy is getting disturbed in that. Then, a friend can see the class cancellations from other friends and mark the same in his.
  4. We can request our friends to mark proxy. Friends can accept or reject the request. Only one user can accept the proxy request. When a friend has accepted a proxy request, all the other requests to friends will be revoked. Then the accepted friend can mark whether he was successful in marking proxy or not. Based on that, the attendance of that day will be automatically marked as proxied or absent in the user's time table.

We can also think about some algorithm to give approx % of attendance (if possible)

Create a Database of colleges, year, course to get approx amount classes taken and then we can provide approx no. of classes he/she can miss (also % of attendance) (there will be 2 % of attendance, one with considering proxy and one without proxy, just to be safe)

devrungta commented 1 month ago

@devrungta Hehe nice one actually. I forget almost everything 😭 In attendance tracking, I am too lazy to open the app and mark attendance. So I deleted the app eventually 😅 For this, the following can be done:

  1. There should be a time, which user choses. At that time daily on working days, app sends a notification to mark attendance.
  2. We can put a feature that user can save his classroom location. So, whenever he comes inside some radius, with class as center, app sends a notification whether to mark attendance for that class.

It might be so repetitive to create the time table of the class. So, in the Social Integration section we can add the following features:

  1. User can see the friends' time table created. Then there will be a button to copy the same time table.
  2. A user can choose who can see their attendance: Friends, Everyone, No one
  3. Generally, if we forget to mark whether class was cancelled we will not be able to remember what happened. So, the cancellation of classes will be visible to the friends no matter what, because no privacy is getting disturbed in that. Then, a friend can see the class cancellations from other friends and mark the same in his.
  4. We can request our friends to mark proxy. Friends can accept or reject the request. Only one user can accept the proxy request. When a friend has accepted a proxy request, all the other requests to friends will be revoked. Then the accepted friend can mark whether he was successful in marking proxy or not. Based on that, the attendance of that day will be automatically marked as proxied or absent in the user's time table.

We can also think about some algorithm to give approx % of attendance (if possible)

Create a Database of colleges, year, course to get approx amount classes taken and then we can provide approx no. of classes he/she can miss (also % of attendance) (there will be 2 % of attendance, one with considering proxy and one without proxy, just to be safe)

But the number of classes in total for any subject also depend upon the teacher which can be changed, I understand that's why approximate, but I believe it could still be a bit misleading. That is why, I think we should calculate wether or not the next class can be skipped based on current attendance.

Varun-Kolanu commented 1 month ago

@saikat-iit The number of classes will be variable and every teacher doesn't announce how many classes they will take in the whole course. If announced too, it can vary depending upon the holidays from the teacher, any emergency in college etc.

@devrungta Yeah the student will choose the percentage of attendance he needs (Some toppers may try for 90% attendance 😵‍💫). Then according to it, the current attendance percentage will be calculated and the user can try to maintain it regularly.

We can use the algorithm which we use generally to calculate how many classes more should we attend without fail to reach the desired percentage:

((currentAttended + x) / (currentTotal + x)) * 100 = desiredPercentage

and solve for x

criticic commented 1 month ago

Still some method of estimating number of classes might be helpful, so we could provid like warnings like "You cannot miss any mmore classes this semester", "7/10 classes missed" which would help someone plan ahead

though we can solve for how many classes we can miss (according to the current number of classes) based on the below formula:

((currentAttended) / (currentTotal + x)) * 100 = desiredPercentage
Varun-Kolanu commented 1 month ago

@criticic Yeah nice. If his current percentage is more than desired, we can show how many classes he can miss continuously to not fall below desired and if it's less than desired, we will show how many classes he should attend continuously to reach the desired.

devrungta commented 1 month ago

These last two ideas are actually how bunkit works as well..😁😁👍👍

Rasesh2005 commented 1 month ago

@devrungta Hehe nice one actually. I forget almost everything 😭

In attendance tracking, I am too lazy to open the app and mark attendance. So I deleted the app eventually 😅 For this, the following can be done:

  1. There should be a time, which user choses. At that time daily on working days, app sends a notification to mark attendance.
  2. We can put a feature that user can save his classroom location. So, whenever he comes inside some radius, with class as center, app sends a notification whether to mark attendance for that class.

It might be so repetitive to create the time table of the class. So, in the Social Integration section we can add the following features:

  1. User can see the friends' time table created. Then there will be a button to copy the same time table.
  2. A user can choose who can see their attendance: Friends, Everyone, No one
  3. Generally, if we forget to mark whether class was cancelled we will not be able to remember what happened. So, the cancellation of classes will be visible to the friends no matter what, because no privacy is getting disturbed in that. Then, a friend can see the class cancellations from other friends and mark the same in his.
  4. We can request our friends to mark proxy. Friends can accept or reject the request. Only one user can accept the proxy request. When a friend has accepted a proxy request, all the other requests to friends will be revoked. Then the accepted friend can mark whether he was successful in marking proxy or not. Based on that, the attendance of that day will be automatically marked as proxied or absent in the user's time table.

Added Feature suggestions:

Varun-Kolanu commented 1 month ago

@Rasesh2005 Yeah noicee. We shall add them too

criticic commented 1 month ago

came across this app: https://teachassistapp.github.io/

We could also implement features prresent in this app somewhat that is, Marks calculation (from weightage entered for midsem. endsem, assignment etc), and expected spi calculation, like enter whatever grade you feel you might get and it predicts your spi (and also could help you, say you aim to have more than 8.5 CPI, so you could find out what grades you'd need to achieve it)

also the ui of this app seems nice

devrungta commented 1 month ago

We can classify events as academic and non academic, for the academic ones, we can make the option of attendance, grades, credits, calculate spi or cpi, classroom(with classmates from contacts), requests for proxy, and then we can add exams in it, location wise attendance marking, For non academic we can have event name, attendance( for like fest meets or club meets), time and location attendance marking, and add groups for people working together, for partners and all event time table for all to copy and paste as well. Just trying to structure the conversation

Varun-Kolanu commented 1 month ago

@criticic Pretty useful feature and the app too is nice for reference 🚀

Varun-Kolanu commented 1 month ago

We will try to build the full application first using shared_preferences and then if time permits, will move to the friends etc using firebase. Because this is still a good app without the friends' part. Adding firebase in the middle of project might add unnecessary complexity.

Rasesh2005 commented 1 month ago

But We need the firebase to store TimeTable and marking attendance right?? What are the data that we will be storing in Shared_Preferences? As the proxy request feature would only work if the time table and attendance is shared(with attendance could be made viewable to specific people or to all or to none)

Varun-Kolanu commented 1 month ago

@Rasesh2005 I was thinking to store jsons in shared_preferences but yeah we can start our initial app too with integrating firebase.