Giter Site home page Giter Site logo

comet_events's Introduction

comet events

☄️ | A 📱 app that makes finding events and gatherings easier!

This app provides a way for people to find and host events happening near them in real time. The user can pop open the app and see a map of all the events happening within their proximity on the spot. The location spots are marked with a pin, that varies in color and shape based on the type of event. You can also premiere events happening soon, which will show an event countdown. Tapping on an event will take you to a detail page, where you can see the event name, description, rating, a list people attending the event, and an RSVP option you can press to indicate you are joining.

Contributers

Design

  • Zach Allen
  • Jimmy

Implementation

Minimum Viable Product

Backend & Middleware

  • Flutter State Management System
  • Setup Firebase
    • Setup Flutter project to work with Firebase
    • Setup authentication methods in Firebase
    • Setup Firestore permissions
  • Database Architecture
    • Design a database architecture that efficiently stores and retrieves data
    • Design a schema for events that makes it easy to retrieve events based on geolocation
    • Design a schema for users and enhanced users
    • Design an efficient system to store user followers
  • Setup services (classes) in Flutter
    • Setup Firebase Auth service, including a StreamController for the current user
    • Setup Google Maps Platform services
    • Setup Firestore & Storage service
  • Work with frontend team to create view models for each screen
  • Come up with ways to efficiently retrieve data from the database without sacrificing speed, and lowers cost of operation

Frontend & UI

  • Clean, custom-designed mockup for UI, as well as branding
    • Primary and secondary fonts
    • Color palette
    • Clean ass shit u feel me
  • Login and register UI screens
    • Buttons that support different methods of sign-in and registration
    • Button that allows user to apply for an organization account (enhanced features)
  • A Google Maps integrated home page that displays nearby events
    • Different pin sprites for event types, including a 'countdown' pin that features a timer for premiering events
    • Custom Google Maps colors that follow our branding guidelines
    • Scroll view that displays buttons containing some details of the event in focus, and redirect to a details screen
    • Filter UI popup that allows user to filter events based on a variety of variables
  • Details screen that displays details of the event
    • Detail screen that follows the mockup design
    • Tappable address redirects to a navigation app with the address autofilled
    • A button that opens a text UI that shows special instructions to get to the event
    • A list of people attending the event (list starts with people you follow) depending on whether this feature is enabled or not
  • Profile screen
    • Profile screen that follows the mockup design
    • Edit mode (viewstate that allows elements to be edited), with a save button
    • List of past hosted events
    • Toggle between open follow and 'invite-to-follow'
    • 'Host an event' button, that redirects to an event setup screen
  • Event setup screen
    • Event setup screen that follows the mockup design, and has a field for each element in the event data structure
    • Toggle between allowing people to see list of attendees
    • Tag list
    • Premiere toggle, and what time
  • Settings screen
    • Choose notification settings, and account deletion

Resources

APIs

Database

Cross-Platform Frameworks

Prototyping

Text Editiors and IDEs

comet_events's People

Contributors

jafrilli avatar neha-rode avatar bachnguyente avatar swarj avatar vishvakbandi avatar

Stargazers

Gareth Eddies avatar Jimmy Vrana avatar  avatar  avatar Willie Chalmers III avatar

Watchers

James Cloos avatar Jimmy Vrana avatar  avatar

Forkers

tanmay4osme

comet_events's Issues

ProfileScreen view model request

Profile page of users. Includes basic user info plus followers and events hosted by the user:

Variables

  • model.user: User
    This variable should be a User object containing all the info of the user whose profile is being displayed.

Functions

  • model.createUser(String uid) -> User
    This function is supposed to create a User object from a given user id. Return User created.

  • model.followUser(String uid) -> Future<bool>
    This function is supposed to add the given user id to the current user's following list. Return whether the process was successful or not (boolean).

  • model.unfollowUser(String uid) -> Future<bool>
    This function is supposed to remove the given user id from the current user's following list. Return whether the process was successful or not (boolean).

  • model.isFollowing(String uid) -> bool
    This function is supposed to return whether the current user is already following the given user or not (boolean).

  • model.shareButton(String uid) -> void
    This function is supposed to allow users to share a profile page. I don't know what api is going to be used yet, so I'm not sure on specifics.

  • model.viewAllFollowers(String uid) -> void
    This function is supposed to navigate to a page full of all of the followers of a given user id.

  • model.viewAllEvents(String uid) -> void
    This function is supposed to navigate to a page full of all of the events hosted by a given user id.

  • model.goToUserProfile(String uid) -> void
    This function is supposed to navigate to the profile page of another user when users click on a person's profile pic.

  • model.goToEventDetails(String eventid) -> void
    This function is supposed to navigate to the event details page when users click on the event tile.

LoginScreen view model request (EXAMPLE)

<This is a description of the screen/widget you're working on. These functions/variables are just dummy text, so change them to what you need>:

Variables

  • model.anArray: String[]
    This variable should have an array of results from an api

Functions

  • model.loginEmailPassword(String email, String password) -> Future<bool>
    This function is supposed to log the person in with a generic email and password. Return whether the process was successful or not (boolean).

  • model.loginGoogleAuth() -> Future<bool>
    This function is supposed to log the person with Google Auth (a popup that makes them sign into their gmail). Return whether the process was successful or not (boolean).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.