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!