AniWiki is an open-source project designed to help anime fans search, explore, and track anime series. This project was developed as part of a DevOps class under Josh Lowe to apply best practices in CI/CD, automation, and containerization.
👉 Top Anime Ranking
👉 Seasonal New Releases
👉 Search by Name
👉 Search by Studio
👉 Search by Genre
👉 Upcoming Anime Section
👉 Manga Explorer
- Create a Watchlist for Favorite Anime
- User Account System (Login & Registration)
- Personalized Anime Recommendations
- Community Ratings & Reviews
Download and install Python from python.org.
Ensure Python is added to your system path by selecting "Add Python to PATH" during installation.
Verify installation:
python --versionMost Linux/macOS systems have Python pre-installed. To install/update, run:
sudo apt update && sudo apt install python3
sudo apt install python3-pipVerify installation:
python3 --versiongit clone https://github.com/Ontario-Tech-NITS/final-project-group-effort-group-3.git
cd final-project-group-effort-group-3python -m venv envActivate the virtual environment:
- Windows:
env\Scripts\activate
- Linux/macOS:
source env/bin/activate
pip install -r requirements.txt python app.py | python3 app.py Then visit http://127.0.0.1:5000/ in your browser.
This project uses a CI/CD pipeline to automatically test and ensure the quality of the code on every push, pull request, or manual trigger. Below are the steps that the pipeline performs:
-
Build:
- The application is built using Python 3.10 to ensure the environment is correctly set up.
- This ensures that no structural issues exist in the codebase.
- The pipeline runs on Ubuntu as the enviroment based on the phase 2 requirments
- Checks out the latest version of the repository
- This ensures the enviroment is properly setup before running tests and validations
-
Linting:
- The code is analyzed using Pylint, a static code analysis tool.
- This step ensures the code follows consistent coding practices and checks for potential errors. Line too long warnings are disabled
- installs all project dependencies listed in the requirments.txt
- detects coding errors, styling mismatches and overall consistency
-
Tests:
- Unit tests are run to verify the functionality of the code.
- The tests are executed using the unittest framework to ensure that no new code introduces bugs.
- It searches for test files inside the static/scripts/test directory and runs them to ensure they are all passing
- Trigger: The pipeline runs automatically on every push, pull request, or manual trigger.
- Tasks:
- Set up Python 3.10: Prepares the environment.
- Install dependencies: Installs the required libraries.
- Lint the code: Ensures code quality and consistency.
- Run unit tests: Verifies the correctness of the code.
- Run pylint locally before committing changes: pylint static/scripts/test
- Check for syntax errors, unused variables, or formatting issues.
- Ensure that all dependencies are correctly listed in requirements.txt.
- Run tests locally before pushing
📁 final-project-group-effort-group-3
│── 📁 static # Static assets (CSS, JS, Images)
│ │── 📁 images # Image assets
│ │ │── 🌞 404.png
│ │ │── 🌞 Factsheet.png
│ │ │── 🌞 Logo.png
│ │── 📁 scripts # JavaScript files
| │── │── 📁 tests # Unit tests
| │── │── │── 📝 test_search_by_name.py
| │── │── │── 📝 test_search_by_studio.py
| │── │── │── 📝 test_search_by_genre.py
| │── │── │── 📝 test_season_new_releases.py
| │── │── │── 📝 test_top_anime.py
| │── │── │── 📝 test_manga_explorer.py
| │── │── │── 📝 test_upcoming_anime.py
│ | |── 📝 search_by_name.py
│ | |── 📝 search_by_studio.py
│ | |── 📝 search_by_genre.py
│ | |── 📝 season_new_releases.py
│ | |── 📝 top_anime.py
│ | |── 📝 manga_explorer.py
│ | |── 📝 upcoming_anime.py
│ │── 📁 styles # CSS Stylesheets
│ | |── 📝 main.css
│ | |── 📝 404.css
│ | |── 📝 search_by_name.css
│ | |── 📝 search_by_studio.css
│ | |── 📝 search_by_genre.css
│ | |── 📝 season_new_releases.css
│ | |── 📝 top_anime.css
│ | |── 📝 upcoming.css
│ | |── 📝 manga_explorer.css
│── 📁 templates # HTML templates
│ │── 📝 404.html # Custom 404 Page
│ │── 📝 index.html # Homepage
│ │── 📝 search_by_name.html
│ │── 📝 search_by_studio.html
│ │── 📝 search_by_genre.html
│ │── 📝 season_new_releases.html
│ │── 📝 upcoming_search.html
│ │── 📝 manga_explorer.html
│ │── 📝 top_anime.html
│── 📝 app.py # Flask Backend Application
│── 📝 README.md # Project Documentation
│── 📝 requirements.txt # Python Dependencies
│── 📝 .github/workflows # GitHub Actions CI/CD Pipeline
To run the unit tests, navigate to the project directory and execute:
python -m unittest discover -s ./static/scripts/testThis will automatically discover and run all test cases inside the static/scripts/test directory.
We welcome contributions! Fork the repo, create a branch, and submit a PR.
This project is licensed under the MIT License. You are free to use, modify, and distribute it.
👨💻 Developers: Al, Yousif, Caleb, Faraz, Sam 📚 Instructor: Josh Lowe
🌟 If you like the project, don't forget to star it on GitHub!