# M0: Selecting a Project

After choosing a team, selecting a project is the next important decision you need to make.

Your will define, design and build an Android application that solves a particular problem for users. Your target should be a well-designed, robust application that wouldn't feel out-of-place on a commercial app store. Dream big!

An ideal project is something that (a) addresses a problem for users, and (b) uses technology to solve that problem in a novel or interesting way.

Your project idea lies on the intersection opportunities (needs) and problems (technical solutions). See the SE Capstone Handbook 2024.
Your project idea lies on the intersection opportunities (needs) and problems (technical solutions). See the SE Capstone Handbook 2024.

# Steps to Take

We recommend the following steps to find a project idea:

  • Have an open discussion around any personal goals that you might have. For example, if you're interested in learning about a particular technology, or if you're interested in a particular domain, this might be a good opportunity to explore that.
  • Review the project requirements to understand the type of application you need to design.
  • Brainstorm! Try and identify potential users, and problems that you could solve for them. If you need inspiration, look at existing applications and try and improve on those. This is important: identify the need first, and then secondly think of how to solve that need.
  • Record all of your ideas. You want to capture everything, and as they say, "there is no bad idea" at this point!
  • Discuss as a team and narrow down your ideas to a single problem/solution that you would like to address. It's perfectly fine to have a few ideas, but you should only work on one project.

# Project Suggestions

Here's a few different sources of inspiration for your project:

# ChatGPT generated list

So, you're really not sure what to build? Here's a few ideas courtesy of ChatGPT. Choose an idea that aligns with your interests and skills, and consider adding unique features to make your application stand out!

  1. Task Manager: Create a desktop task manager application that allows users to organize their tasks, set reminders, and prioritize tasks based on deadlines or importance.
  2. Note-taking App: Develop a note-taking application where users can create, organize, and search through their notes. Include features like rich text formatting, tagging, and synchronization across devices.
  3. Expense Tracker: Build a desktop expense tracker to help users manage their finances. Include features like expense categorization, budget tracking, and generating reports or visualizations.
  4. Password Manager: Design a password manager application that securely stores and manages users' login credentials for various accounts. Implement encryption and features like password generation and synchronization.
  5. Weather App: Create a desktop weather application that provides users with real-time weather information, forecasts, and weather alerts for their location or specified locations.
  6. Fitness Tracker: Build a fitness tracker application that helps users track their physical activity, set fitness goals, and monitor their progress over time. Include features like exercise logging, calorie tracking, and workout planning.
  7. Recipe Organizer: Develop a recipe organizer application where users can save, categorize, and search for recipes. Include features like meal planning, ingredient shopping lists, and recipe sharing.
  8. Code Snippet Manager: Design a code snippet manager application that allows developers to store, organize, and search through their code snippets. Include features like syntax highlighting, tagging, and integration with code editors.
  9. File Encryption Tool: Create a desktop application for encrypting and decrypting files to ensure users' data privacy and security. Implement strong encryption algorithms and user-friendly interface.
  10. Screen Capture Tool: Build a screen capture tool that allows users to capture screenshots or record screen activities. Include features like annotation tools, customizable capture settings, and sharing options.
  11. Music Player: Develop a desktop music player application with features like playlist management, equalizer settings, and support for various audio formats. Optionally, include online streaming capabilities.
  12. Calendar App: Design a calendar application that helps users manage their schedules, appointments, and events. Include features like multiple calendar views, event reminders, and synchronization with other calendar services.
  13. Language Learning Tool: Build a desktop application to help users learn a new language, with features like flashcards, vocabulary exercises, pronunciation practice, and language learning progress tracking.
  14. Move tracker: Build a mobile application to track movies that you've seen. Import movie data from IMDB, rate them, add comments and share reviews with your friends!

# Public data/APIs

If you're still stuck for an idea, here are some interesting public APIs that you might be able to leverage (e.g., build an application for comic-book collectors, or weather enthusiasts!)

# Gallery

For inspiration, look at the Gallery of past projects. This should give you the idea of the level of quality and polish that you need to get an A in this course. Avoid doing this until you have at least a small set of possible project ideas; we don't want everyone duplicating the first project they see in the Gallery!

# How to submit

Surprise, you don't submit this! You do need to select a project before you can proceed to the M2 Project Proposal.