Skip to content

Building a student UIC task manager as a first project for SIG Mobile Development.

Notifications You must be signed in to change notification settings

acm-uic/student-task-manager-sig-mobile-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to SIG Mobile Development!

New Members

Important

Be sure to join the ACM server if you haven't already. This will be our main means of communication.

Note

DM ani_bytes at Discord if you need the invite.

Important

Link to team roles listing and sandbox flutter app: https://zapp.run/edit/flutter-zx3y06w2x3z0?entry=lib/main.dart&file=lib/main.dart


Goals

  • LinkedIn -> Beef up the experience section on LinkedIn with the apps we build.
  • Develop Transferable skills -> Working on a team to build an app, learning new coding languages, managing workload along with college. What else can recruiters ask for?
  • Monetization -> Obviously, once we gain momentum and experience, this doorway opens.
  • Make a name -> Create apps for great causes, create popular apps, etc

Team Culture and Values

Here's the type of team enviroment I'm working to build. Let me know if anyone has suggestions.

  • Flexibility -> Being in college means less time. Making sure indviduals have flexibility on when they can complete work is a priority.
  • Assisstance -> Help each other through problems and rely on the team. Build friendships with like-minded people on the team.
  • Competitive -> Code apps with the intent to be the best on the market, no matter your experience level
  • Continious Learning -> Once we get done with one language, we move to another harder one.
  • Discipline -> Get it done regardless of motivation. That's how we go to the top, by doing things that not everyone is willing to do.

Preview of Our Development Process

It goes without saying that any major undertaking requires planning beforehand. That is especially true for mobile development. I speak from experience when I say, you're headed for disaster if you don't plan out all your components, screens, backend, etc before you touch the keyboard.

For that reason, I gathered information on the process of app development with extensive research.

Here are the basic steps I found, we'll be using this process for all our projects. The goal is to give us a basic idea to work with while still allowing flexibility and creativity with the app.

Tip

If a coding related doubt ever comes up, you should ask Stack Overflow, your teammates, lead, and SIG Leader in that order.

Tip

Leads, if any serious problems arise, you can go to the SIG Leader and project manager.

Note

The idea is to push indviduals to solve their own problems and grow, while also making sure one person isn't answering everything.

Step 1: Discovery

  • Roles involved:
    • Everyone

Let the creativity flow! This is the stage where...

  • Find an idea that's not already on the market
  • Where is the future headed? What kind of app leverages that? What trends can we hop on | Can we create a new trend?
  • Research possible selling points and features | What do we have that others don't?

--

Step 2: Planning

  • Roles involved:
    • Everyone

We have a great idea, but is it possible? This is the stage where...

  • Research potential databases/APIs/libraries that can be used to make the app | Ex. If we make a book app, how will we get the book info? Local database? API?
  • Are there any problems that will arise if we proceed with the creation of the app? | Ex. Limitations with the coding language/library we'll be using
  • What features will there be available on the app?
  • What platform will we be using?
  • Any other problems?

Note

If we can't find solutions to the problems we think of, we go back to Step 1

--

Step 3: Design

  • Roles involved:
    • Designers
    • Managers and Leads
    • Anyone who'd like to pitch in on design

Now we visualize it. This is the state where...

  • We draw up the screen visuals to help us see what we want
  • All screens will be drawn by designers
  • Everyone pitches in and requests changes to the designers

--

Step 4: Backend

  • Roles involved:
    • Backend lead
    • Backend team
    • Managers and Leads

We figure out how we make it work behind the screens. This is the stage where...

  • What backend functions are required for the actions taken by the user in the frontend?
  • How can we use the database to achieve this result?
  • Code the backend and all functions
  • Make them easily readable for the rest of the team

--

Step 5: Frontend

  • Roles involved:
    • Frontend lead
    • Designers
    • Fullstack lead
    • Frontend team
    • Managers and Leads

It's time to work off the hard work of the backend programmers. This is the stage where...

  • Screens are established
  • Designer is consulted to see if everything looks good, or additions are required
  • Button presses are connected to backend functions
  • Everything on the UI and UX is taken care of
  • Fullstack lead goes through the code and finds errors if there is a problem between connecting the frontend and backend

--

Step 6: Testing and Refining

  • Roles involved
    • Everyone

The app's done! But is it really? This is the stage where...

  • Tester goes through every screen and uses every feature
  • Tester tries to use the app in different devices to see if the screen changes dynamically based on available screen space
  • Everyone voices opinions on how the app could be better

Note

If the tester(s) find any problems, they direct them to the appropriate team/lead so it can be solved

--

Step 7: Publication Testing and Publishing

  • Roles involved
    • Everyone

Now the app's really done. This is the stage where...

  • We go through the publication process to get our app published

  • This requires another round of testing where we need to run a closed app test (Our app is available on the store for a select amount of people)

  • These select people will then test the app and get back to us. If everything's good, we go forward and get our app published.

  • Marketing, if necessary. We go on social media and tell everyone that new app is available

  • Obviously, if we build an app for an organization such as UIC or someone else, the organization will take care of spreading the word


Schedule and Workflow

How scheduling will work:

  • The entire app process will be chuncked off into sections
  • The sections will have deadlines based on how time-consuming they are (You will have a lot of time to get it done)
  • We complete each section based on the timeline until the entire app is complete

Simplified: SIG leader and Project Manager come up with a timeline --> Timeline is given to the leads --> Leads will coordinate their respective team of devs to get the assignment done based on the time given

Note

Any problems with the schedule/ability to complete assignment should be communicated

Important

The lead needs to consider the schedule and timings of their team, and organizes work around that. The lead should be talking to their team and making sure everyone's doing good, and no problems are arising.

Note

This entire process assumes that everyone voices any hardships that occur during the process. So if the timeline collides with your schedule, or if something comes up and hinders your ability to complete assignments on time, speak up!

This is what a sample timeline could look like:

  1. 1 week -> Design team - Draw up all screens based on your creativity and imagination
  2. 4 days -> Design team - Design is presented to the team and designer makes adjustments based on what everyone thinks
  3. 2 weeks -> Backend team - Backend team creates functions requierd to make features possible
  4. 3 week -> Frontend team - Frontend team codes the screens and connects buttons and user input to backend
  5. 1 week -> Tester - Tester goes through every screen and tests features
  6. 2 weeks -> Everyone - Reiterate through necessary steps and consult appropriate teams to get bugs fixed
  7. 2 weeks -> SIG Leader and project manager - Closed testing begins
  8. 1 week -> SIG Leader and project manager - Steps to publish are taken and the app is launched

Note

Fullstack lead: Throughout the entire process, you will be consulted about database/fetching issues from the backend and frontend lead. You will work to make sure everything's working smoothly and data is being fetched optimally and displayed in the front properly.

Note

SIG Lead: I'll be all over the place helping out wherever the most pressing problem is. So leads please reach out if assisstance/more manpower is needed.

Note

Project Manager: You'll be adjusting the timeline based on complaints/concerns from the entire team, and also prioritizing tasks as neccessary. You'll also be available if any extra manpower is needed.

Important

Notice how each team only has to work for one to two weeks in the process. That's the entire point of this structure. After your week(s), you'll only need to work when problems come up and you are consulted.

Meeting Times

There will be physical, in-person meetings as the schedule of everyone permits. The timings for these meetings will be established well before, so we can get everyone there. They won't be frequent, but they will be important since they'll be information/review sessions.

There is no set online meeting time as of now, since each team is going to operate on their own and try to solve their own problems. Most of our collaboration will be over Git.

We'll be using Discord VC to clear any doubts on coding on the indvidual level. For example, if a developer has a question they can't wrap their head around, they can contact their lead and get on vc/DM them to get it cleared.

Additionally, groups (frontend, backend, leads, etc) may meet over VC if it's neccessary, that's completely up to each indvidual team.

During major events (like launching of an app), a in-person hangout/meeting or a whole group VC with everyone may be organized so we can celebrate/discuss a matter. You'll be notified of such events a lot of time in advance.

Bottom line: We won't be having any set schedule for meeting times since it's not always necessary. If it is necessary, you'll be notified well in advance.


Tools and Languages

These are the languages and tools we'll be using for our very first project

  • Flutter -> Frontend
  • Dart -> Backend
  • GetX -> State Management
  • SQLite -> Database
  • Git -> Sharing and peer coding
  • VSCode -> Collaborative coding with Microsoft Live Share and text editor

Team structure and Role Descriptions

A well established structure is essential if we want to finish our tasks quickly and get our questions answered promptly. Here's a sandbox Flutter app I created that explains each role, as well as tells you your role on the team.

I made this a sandbox app because I'd like newer members coming into app development to get a feel of what it looks like. Don't be afraid if you are overwhelmed, just focus on one thing at a time.

It's not nearly as hard as it looks. I myself did this also to learn Flutter, because I don't have much experience with Flutter and Dart.

Be sure to play around with the code! Your project will be forked and my work nor others' will be affected. This is the main reason I made this a sandbox code instead of a plain old document. I want members to play around with it and change things to see what it does.

Here's the link! Team Roles Sandbox Link

About

Building a student UIC task manager as a first project for SIG Mobile Development.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published