Skip to content

LucasSimone/MobileDev-FinalProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Major Group Project

The starter code for the major group project.

Group members (3-5) (no Student IDs, only names):

  1. Raphael Nation (raphnati)
  2. Vital Golub (VitalGolub)
  3. Isaiah von Uders (isaiahsgithub)
  4. Lucas Simone (LucasSimone)

Instructions

Sign up for an account

select an image off your device for the profile picture and fill in the rest of the information

You can go to your profile by pressing the home button in the top left corner of the screen

You can upload a post by pressing the floating plus button on a profile page

Text can be entered and a primary image can be selected as the base of a post

A sub image can optionally be selected and animated using the options presented, this animation can be previewed by pressing the "Preview" button

Your profile page will populate with posts that you create

You can delete a post by pressing the trash can icon next to a post of your own

You can view statistics of your post by going to your profile page and pressing the chart button in the top right corner

Friends can be added by going to the add friends tab and searching up a friend

A friend request will be sent and once that person accepts the request you will be friends

You can text chat with a friend in the app by going to the chats tab and selecting a chat to talk to someone

You can also view friend's profile by pressing the person icon on they're list tile on the friends page

You can like images by pressing the heart icon on a post

You can take pictures by switching to the camera tab and pressing the camera button

After a picture is taken a variation of filters can be applied, many of which contain the geolocated city the image was taken in

A picture can then be saved to the device using the save icon

The theme can be changed to dark theme by pressing the cog in the top right

Admin account:

admin account can be accessed by using an account with the username "admin"

The default firestore has an admin account with the username "admin" and the password "admin123"

There is a button under setting called view statistics for this account that contains a chart of how many friends each user has

The tab called "friend map" shows a map of all friend locations on a map with icon markers

In the settings tab, the users icon can be pressed to change the user's profile picture

Internationalization changes are on the sign up page based on the system's language

Overview

This group project is designed for you to demonstrate the skills that you have learned in this course. The final project that you submit in the last week of classes will be a completed mobile application. Non-functional requirements, especially those associated with production-readiness, will be considered extremely important when marking this project. You are expected to work in a group of three to five students when completing this project. Students are not permitted to work alone on the project, as this eliminates one of the learning objectives of this assessment.

Note: Any projects from individual students will not be accepted, except if special permission has been given by the instructor in advance.

Detailed Instructions

Choosing a Topic

The project topic is, for the most part, up to you. Therefore, ensure that you choose a project topic that lets you demonstrate the skills learned in this course. Consideration will be given to projects whose functionality is rather different from sample applications and those developed in assignments in this course. When evaluating your project, I will consider this as requiring extra work. More work done often equates to a higher grade.

It is acceptable if you want to do a project related to industry. If someone you know wants a web application developed, and it lets you demonstrate the skills you’ve learned in this course, then you can use it for your project (even if you plan to sell that web application when you are finished). Please keep in mind that nothing your prospective buyer says or does will affect the due date or expectations that I have for this project. No matter what happens, this project is due when it is due, my expectations will be based on the content of this course, and I will expect a certain degree of professionalism and production-readiness. Anything outside of the scope of this course will likely not earn you much, in terms of marks. Proceed with caution.

Basic Requirements

It is your job to incorporate as many course concepts into your project as possible. At a minimum, your project must include the following:

  • Dialogs and pickers
  • Multiple screens and navigation
  • Snack bars
  • Notifications
  • Local storage (SQLite)
  • Cloud storage (Firestore or other)
  • HTTP requests
  • Data tables
  • Charts
  • Maps
  • Geolocation
  • Geocoding
  • Internationalization

The actual size of the project (in terms of the number of screens, number of use cases, or amount of code) will differ from group to group. Ultimately, the factor being considered is how much work appears to have gone into the project. Larger groups will be expected to do proportionally more work. If you incorporate concepts outside of this course (e.g. game engines, 3D graphics, sound) you will get credit, but in the subjective part of the evaluation only. Thus, ensure that you meet the minimum requirements, outlined above, first.

Game Development Alternative

Students who want to create a mobile game have the option to do so, but this topic won’t be covered until week 10 of the course. Therefore, it is expected that this option will require significant self-learning to get a head start before the main lectures/examples covering game development. The objective requirements, listed above, will be relaxed quite a bit for groups developing a game, but the expectations are just as high. If you wish to pursue this option, please contact the instructor so that we can work out a set of expectations for the major project.

Evaluation

When evaluating this project, the instructor and the TAs will attempt to give a metric to the amount of work involved, considering several important factors (design, cleanliness of code, code comments, variable/function naming, security checks, error checking, usability/user-friendliness/aesthetic, accessibility, and performance). This metric will be affected by the size of your group (i.e. what will be evaluated is the average work done per group member).

The marking will occur in two phases. The idea behind these phases is that your project should improve over time, so that the final product is comprehensive, professional, and production-ready. It is hoped that your project will make a great portfolio item for when you apply for jobs. The phased marking should also prevent groups from waiting until just a few days before the due date before starting their project.

Formative Assessment

The first phase of marking, performed by a TA(s) in week 10. This will evaluate whether or not you have included the topics from the first 9 weeks of the course, which will be mostly objective, but will also include a small subjective mark describing the work done, the user interface design, and the code/design quality. A rubric will be included on Canvas, so you can verify in advance which topics will be included. The purpose of the pre-evaluation is to give you an idea of the quality of your project before the end of the term, so that you can make any adjustments necessary to get the grade you want. This evaluation will be worth 10% of your final grade.

Functional requirements (7 marks total)

Max Score Requirement
1.50 Multiple screens/navigation
1.00 Dialogs and pickers
1.00 Notifications
0.50 Snackbars
1.50 Local storage
1.50 Cloud storage

Non-functional requirements (3 marks total)

Max Score Requirement
1.00 Amount of work done
1.00 User interface design/usability
1.00 Code and design quality

Summative Assessment

The final phase of marking will be carried out exclusively by the instructor. For students who have met all of the objective requirements, as evaluated in the first two marking phases, will be evaluated on a strictly subjective evaluation, similar to that done in the second phase. This evaluation will be carried out more strictly, with higher expectations. This evaluation will be worth 30% of your final grade.

Functional requirements (5 marks total)

Max Score Requirement
0.50 multiple screens and navigation
0.25 dialogs and pickers
0.50 snackbars and notifications
0.75 local storage
0.75 cloud storage
0.50 data tables and charts
0.50 maps
0.50 geolocation
0.25 geocoding
0.50 internationalization

Non-functional requirements (25 marks total)

Max Score Requirement
5.00 code and design quality
5.00 user interface design and usability
15.00 amount of work done

How to Submit

The project starter is available on GitHub Classroom, which really just has a .gitignore, since I want you to have freedom over this project. There won’t be any starter code, you will start from scratch. Accept the invite link for this project on GitHub Classroom (shared in Canvas), and use the new repository generated to store your project files. This is setup as a group project, so one person can sign up, and others group members can also contribute to the project in that new repository.

The instructor and the TA(s) will use this repository to download the latest version of your project, along with other information (e.g. commit logs) available through Git, when they want to mark the project.

Note: Only one of the group members will accept the GitHub Classroom invitation. It is recommended that every member of the team verify the final repository on GitHub on submission day, so that everybody can be sure that the correct files were submitted and on time. You should also clone the latest version into a fresh directory, and run it locally on your machine to ensure that it works without any unusual configuration.

Note: Work equity will be evaluated using the Git commit logs for your project. If you decide to work together which results in a misrepresentation of work equity in the commit logs, be sure to mention this in your README.md.

To submit this project, please push all your work to your repository, and add the names of all group members names (but not their SIDs) and their corresponding GitHub usernames (so we can tell who made which commits) to the README.md file (at the top).

Note: Any instances of plagiarism will result in the student(s) receiving a mark of zero for the project, and further disciplinary action will be taken. Plagiarism includes, but is not limited to:

  • Copying of (any amount of) work from the Internet, without proper citation
  • Submitting a body of work, cited or not, that is primarily not your own work
  • Copying of (any amount of) work from another student, past or present, without proper citation
  • Allowing your own work to be copied by a fellow student

Getting Help

If you run into difficulty, you may wish to check out some of the following resources:

Of course, you can always ask the TA for help! However, learning how to find the answers out for yourself is not only more satisfying, but results in greater learning as well.

How to Submit

Create your flutter project, and copy it into this folder, commit, and then push your code to this repository to submit your major group project.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages