Picking a topic
Before proceeding. make sure to review the project requirements!
Every term, at least one team is “surprised” to learn that they were supposed to use Kotlin, or Compose for the UI, or write unit tests. All of these things are clearly specified in the requirements, so make sure that you understand that document. Ask your instructor if anything is unclear.
We recommend the following steps:
- Have a discussion with your team about any personal goals that you might have. For example, if you’re interested in learning about a particular technology e.g., database or user interfaces, this might be a good opportunity to explore that.
- 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 second 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.
Public data/APIs
If you’re stuck for an idea, here are some interesting public APIs that you might be able to leverage. Build an application to track a comic-book collection, or a cool new weather app for your phone!
- Stack Overflow API: https://api.stackexchange.com/
- UWaterloo Open API: https://openapi.data.uwaterloo.ca/api-docs/index.html
- Notion API: https://developers.notion.com/
- Pokemon API: https://pokeapi.co/
- Marvel Developer Portal: https://developer.marvel.com/
- REST Countries: https://restcountries.com/
- NASA Open APIs: https://api.nasa.gov/
- Weather API: https://openweathermap.org/api
- Market Data API: https://polygon.io/
- News API: https://newsapi.org/
- YouTube API: https://developers.google.com/youtube/?ref=apilist.fun
- OMDb (Open Movie Database) API: https://www.omdbapi.com/
- DeckOfCards API: https://deckofcardsapi.com/
- Open Library API: https://openlibrary.org/developers/api
ChatGPT project ideas
More ideas, courtesy of ChatGPT. Choose an idea that aligns with your interests and skills! If you use one of these, you will likely need to add features to make your application stand out.
- 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. To make it really interesting, integrate with their Google Calendar.
- Note-taking App: Develop a note-taking application where users can create, organize, and search through their notes. Include features like rich text formatting, image embedding, tagging, and synchronization of notes across devices.
- 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. Let them export/import data from their banking application.
- 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. Encrypt everything!
- 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. Provide alerts based on conditions that they set e.g., “it’s below 10 degrees, so wear a coat”.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Movie 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!