points

A mock social media app

Written in frontend with Flutter using bloc as the state managment, as well supabase in the backend for auth, data storage, and realtime syncing Features include authentication, a chat, notifications, updating your profile, as well as a friend system (that includes friend requests and blocking)

Demos
Updating friends Chat
More demos
Sign in Searching for users Profile
Notifications demo Giving points
Gallery

Idea

The idea is to mock other social media, by giving each other useless points, which mock likes, subscribers and karma in other social media. This is why that app is called ‘points’, the main idea revolves about giving and collecting points and striving to have as many as possible. The idea (the abstraction of social media down to the ranking of people) is inspired by Black Mirror’s Nosedive and Community’s Meow Meow Beanz.

The application is intended as a flutter example for state management, with bloc and for using supabase in flutter and is not meant to be a serious application.

The points system

You can give points to only your friends and after each day the points are redistributed. That means 10% of your points will be converted to points that you have to give to someone else, ‘gives‘.

If you do not give all your gives to someone else, these gives will be destroyed and given to other people, the amount of gives will also be subtracted from your points.

The lowest your points can sink to is 0, then you are also unable to get any more gives, until one of your friends else gives you points again.

Other features

  • a friend system with friends, friend requests and blocking of users
  • live updating of your relations (friends, requests and blocks), along with the profiles of the friends
  • profile editor (edit your icon, name, status, bio and color)
  • chatting with all your friends
  • notifications (however only inside the app)
  • searching for users
  • requesting to be friends with a user via email

Project overview

Technologies

Backend

Frontend

A more in-Depth introduction to the project

Project timeline

Getting started

To run the project:

  1. Clone the project
  2. Run the script pub-installer.sh to install the packages
  3. Use the default supabase project by changing nothing or create a new one and use it instead
  4. Run the app or build it with increased FPS (because of the graphically complex neumorphic design) using SkSL warmup to reduce the shader compilation jank:
flutter build [build target] --bundle-sksl-path flutter_01.sksl.json

GitHub

View Github