Our project DexM Movies is an academic project for CPSC-415-02-Spring 2024 Special Topics: Large Scale and Open-Source Project Development at Trinity College, CT.
DexM Movies provides users with a comprehensive library of movies and TV shows, offering detailed information such as name, release date, age recommendation, genre, budget, rating, IMDb ID, language, and original posters. The application allows users to:
- Search for movies or TV shows by name.
- Receive Ken Kousen's special movie recommendations.
- Add movies to your personal library.
- DexM bot that recommends movies of your preference.
Our team consists of a diverse group of students from various backgrounds and academic years, all united by a passion for computer science and love for movies:
- Chris Yi '26 (Sophomore) – Repository manager and test case developer. Handles merge conflicts, repository issues, and backend test cases.
- Ryan Le '24 (Senior) – Backend developer focusing on search function, also responsible for code readability on the backend.
- Hung Pham '25 (Junior) – Backend developer focusing on database interactions, search filters, and the random movie generator feature.
- Armen Nanayan '25 (Junior) – Decision-maker and frontend developer, tasked with integrating the frontend with the backend. Also helped managing the whole github repository by managing team meetings and pushes.
- Kamilla Volkova '26 (Sophomore) – Notekeeper and communications lead. Responsible for managing communications, taking notes, maintaining the email list, and updating the README file.
- Shivanshu Dwivedi '26 (Sophomore) – Lead frontend developer, responsible for developing the webpage based on IMDB's design and integrating it with backend functionalities.
- Python
- JavaScript
- CSS
- HTML
- React
- Vite
- Next UI
- Semantic UI
- Flask
- Docker
- Frontend: Developed using React, handles user interaction and data presentation.
- Backend: Built with Flask, manages data processing, API integration, and server-side logic.
- Test Cases: Ensures backend functionality is correct through rigorous testing.
- Frontend: Utilizes React, a JavaScript library for building user interfaces.
- Backend: Employs Flask, a lightweight WSGI web application framework in Python.
- Search Functionality: Elasticsearch for advanced search capabilities.
cd movie-bot
pip install -r requirements.txt
python MovieBot.py
cd movie-backend
pip install -r requirements.txt
python MovieBackend.py
cd ReactFrontend
touch .env #Type the VITE_API_KEY here
npm install
npm run dev
cd movie-bot
docker build -t movie-bot .
docker run -p 5002:5002 movie-bot
cd movie-backend
docker build -t movie-backend .
docker run -p 5001:5001 movie-backend
cd ReactFrontend
docker build -t website .
docker run -p 5173:5173 website
- Backend Testing: Comprehensive tests written for all backend functionalities to ensure reliability and stability.
- Frontend Testing: While the frontend primarily requires visual and interactive checks, basic functionality tests are also implemented to ensure UI components behave as expected.
We have implemented a CI/CD pipeline using GitHub Actions, which automates our testing and deployment processes. This pipeline includes:
- Automated Tests: Runs automated unit tests to ensure all code commits meet quality standards before merging.
- Build: Builds the Docker containers for both frontend and backend services.
- Refactor code to keep consumer security & API Key security in mind.
- Improve the authentication feature & add O-Auth feature.
- Implement a Neural Network based movie recommender that suggests movies on the basis of user's previous searches.
- Deploy the application to be of public use.
This project is licensed under the MIT License - see the LICENSE file for details.