AniFAST is a full-stack anime discovery and community platform. It lets users browse and search an anime catalog, build personalized watchlists and favorites, write reviews, get tailored recommendations, and connect with other fans through forums, posts, friends, and direct messaging.
https://ani-fast-ftwt.vercel.app
- Browse anime with details such as title, Japanese title, episode count, status, synopsis, rating, cover image, and studio
- Filter views for newest/currently airing titles, top-rated titles, and seasonal lineups
- Full-text style search across title, Japanese title, and genre
- Genre and tag system for categorizing anime
AniFAST generates suggestions using three complementary strategies:
- Watchlist-based — anime sharing a high number of genres and tags with what's already on a user's watchlist
- Favorites-based — anime with moderate genre/tag overlap with a user's favorited titles
- Social-based — anime that a user's friends are watching but the user hasn't seen yet
- Sign up / authentication with hashed passwords
- Editable profile bio and avatar (profile picture index)
- Personal watchlist and favorites lists
- Submit ratings (1–10) and written reviews for any anime
- View all reviews for a title, a user's own reviews, or the most recent reviews site-wide
- Forums and discussion posts with like and comment counts
- Comment threads on posts
- Friend system with friend requests/status tracking
- Direct messaging between users
- Frontend: Next.js with TypeScript, CSS
- Database: Microsoft SQL Server (T-SQL)
- Database tooling: Raw SQL scripts and a
.bacpacdatabase export for easy restore
AniFAST/
├── anifast(1)/my-app/ # Next.js + TypeScript application
├── AniFast_scripts.sql # Full database schema, queries, indexes, and triggers
├── anifastdb.bacpac # Database export for restoring into SQL Server / Azure SQL
└── AniFAST_project_schema_diagram.pdf # Entity-relationship diagram of the database
The database (AniFAST) consists of the following core tables:
| Table | Purpose |
|---|---|
Users |
Account info, profile bio, avatar |
Studios |
Anime production studios |
Anime |
Core anime catalog entries |
Genres / Tags |
Categorization metadata |
AnimeGenres / AnimeTags |
Many-to-many links between anime and genres/tags |
UserAnimeList |
Per-user watch progress, status, and notes |
Reviews |
User ratings and written reviews |
Favorites / Watchlist |
User-curated anime lists |
Forums / Posts / Comments / Likes |
Community discussion features |
Friends |
Social graph between users |
Messages |
Direct messages between users |
SeasonalAnime |
Anime grouped by release season/year |
Trending |
Ranked trending anime |
Recommendations |
Stored anime-to-anime suggestions |
The schema also includes:
- Indexes on frequently queried columns (titles, emails, foreign keys, timestamps) for performance
- Triggers that automatically keep
Posts.LikeCountandPosts.CommentsCountin sync with theLikesandCommentstables, and that prevent duplicateWatchlist/Favoritesentries
- Node.js (LTS recommended)
- npm or yarn
- Microsoft SQL Server (local instance or Azure SQL)
git clone https://github.com/codesbymusab/AniFAST.git
cd "AniFAST/anifast(1)/my-app"npm installEither:
- Restore
anifastdb.bacpacinto your SQL Server / Azure SQL instance, or - Run
AniFast_scripts.sqlagainst a fresh database to create the schema, indexes, and triggers
Create a .env.local file in my-app with your database connection details, e.g.:
DB_SERVER=your-server.database.windows.net
DB_NAME=AniFAST
DB_USER=your-username
DB_PASSWORD=your-password
npm run devThe app will be available at http://localhost:3000.
See AniFAST_project_schema_diagram.pdf for a visual entity-relationship diagram of the full database.
This project is open-source and available under the MIT License.