Stori is a platform for book lovers to discover, track, and share their reading journey with a community of like-minded people. With over 35.000 titles, Stori offers something for everyone, from casual readers to avid bookworms. Take a deep dive and find your next read here!
This web application is a personal portfolio project built using Next.js 15, ASP.NET Core 9, SQL Server and a third party dataset from goodreads.
- Explore a huge selection of books, from best reviewed to all time classics.
- Comment, rate and add your favorites to a personalized readlist/wishlist.
- Filter books by rating/date/title/category/genre/awards/settings and even characters!
- Share your profile and discover other recommendations from within the community.
- Backends for frontend (BFF) architecture.
- Next.js 15 with App Router, React Server Components and Server Actions.
- React v19 with Typescript
- State management using Zustand.
- Tailwind CSS.
- MVC on ASP.NET Core 9 Web API, Entity Framework Core and SQL Server.
- Docker integration.
- Designed on Figma.
- Assets from unDraw and MingCute.
🎨 Figma mockup available at: https://figma.fun/LeWgQL
The recommended way of running this project is by installing Docker Desktop. With Docker up and running, follow these steps:
Copy and modify (if necessary) the environment variables file.
cp client/.env.example client/.env.development.localAfter that, bring up the client container by running:
docker compose -f client/docker-compose.yml --profile dev up -dFor the server container, there is no environment file to be set, you can just run it with:
docker compose -f server/docker-compose.yml --profile dev up -dMigrations will be applied automatically when the server container is ran in development mode.
With both compose projects launched, you can view the application at:
NextJS Frontend: http://localhost:8080
ASP.Net Core Backend API endpoints: http://localhost:8081/api/v1/
Swagger endpoint (Development mode only): http://localhost:8081
Detailed information for each project can be viewed at their own subdirectory.
Have a good adventure! ⛵☀️
This project is licensed under the MIT License — see the LICENSE.md file for details.