# 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!

You should perform the following steps:

  • Review the project overview page 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 think of how to solve that need second.
  • Record all of your ideas. At this stage, 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.

If you're complete stuck for an idea, look at the ChatGPT-generated list of project ideas below, or skim the list of public APIs for data that you might leverage into an application.

# Project Ideas

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 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!)

  1. UWaterloo Open API: https://openapi.data.uwaterloo.ca/api-docs/index.html
  2. Notion API: https://developers.notion.com/
  3. Pokemon API: https://pokeapi.co/
  4. Marvel Developer Portal: https://developer.marvel.com/
  5. REST Countries: https://restcountries.com/
  6. NASA Open APIs: https://api.nasa.gov/
  7. Weather API: https://openweathermap.org/api
  8. Market Data API: https://polygon.io/
  9. News API: https://newsapi.org/
  10. YouTube API: https://developers.google.com/youtube/?ref=apilist.fun
  11. OMDb (Open Movie Database) API: https://www.omdbapi.com/
  12. DeckOfCards API: https://deckofcardsapi.com/
  13. Open Library API: https://openlibrary.org/developers/api