Watchify is a cross-platform movie recommendation application that delivers personalized movie suggestions. It leverages .NET MAUI for the mobile app development and Go for the backend API. Users can explore trending movies, find recommendations based on their viewing habits, and enjoy an intuitive, swiping interaction for easy movie discovery.
- Movie Recommendations: Receive tailored movie recommendations based on user preferences.
- Trending Movies: Discover trending movies updated regularly.
- Swipe Interaction: Swipe right to like or left to dismiss movies.
- Search Functionality: Look up movies directly by title.
- Genre and Cast Filtering: Filter recommendations by genre or cast for a customized experience.
- Firebase Authentication: Secure login and registration.
- Frontend: .NET MAUI
- Cross-platform support for iOS and Android.
- Backend: Go
- Provides API for movies, genres, recommendations, and more.
- Database: PostgreSQL
- Stores movie details, genres, and user interaction data.
- Authentication: Firebase
- Manages secure user login and registration.
- .NET MAUI: Follow the Microsoft documentation to install .NET MAUI on your system.
- Go: Install Go from the official website here.
- PostgreSQL: Install PostgreSQL for database management.
- Firebase: Set up Firebase for user authentication.
-
Clone the repository:
git clone https://github.com/YourUsername/Watchify.git cd Watchify -
Backend Setup:
- Navigate to the API directory and set up the Go API:
cd api go mod tidy go run main.go - Configure the database connection and other environment variables in the
.envfile.
- Navigate to the API directory and set up the Go API:
-
Frontend Setup:
- Open the project in Visual Studio or Visual Studio Code.
- Build and run the app:
dotnet build dotnet run
-
Database Setup:
- Set up PostgreSQL and create necessary tables for movies, genres, and user interactions.
- Run the Go API server from the
apidirectory. - Start the Watchify .NET MAUI app on your preferred device or emulator.
The backend API provides several endpoints to support the app’s functionality.
- Get Trending Movies:
GET /movies/trending - Get Recommended Movies:
GET /movies/recommendations - Get Movie Details:
GET /movies/{id} - Search Movies:
GET /movies/search?q={query}
For detailed documentation, refer to the API documentation.
Contributions are welcome! Please follow these steps:
- Fork the project.
- Create a new branch for your feature (
git checkout -b feature-name). - Commit your changes (
git commit -m "Add a new feature"). - Push to the branch (
git push origin feature-name). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.