This project is a recipe-sharing web application designed to allow users to create, read, update, and delete their own recipes, as well as share them with others, view recipes from other users, and rate their favorites. The application features data persistence for user accounts and recipes, along with secure login and logout functionality. Our team utilized a range of modern technologies, including Docker for server management, Entity Framework with a code-first approach for database operations, and ASP.NET (C#) to develop the RESTful API that communicates with a SQL database over HTTP. The frontend was built using React and Next.js with TypeScript, providing a responsive and dynamic user experience. This project showcases our team's perseverance in mastering new technologies to develop a functional and user-friendly recipe-sharing platform.
- As a user, I want to create a recipe (by providing the title, description, ingredients, and instructions).
- As a user, I want to update a recipe.
- As a user, I want to read my recipes.
- As a user, I want to delete a recipe.
- As a user, I want to share my recipe with other users.
- As a user I want to rate recipes.
- As a user I want to see the recipes of other users.
The backend application is a .NET Core code-first application with MS SQL Server as the database server. In order to run the backend application data migration is required.
- To run the backend navigate to
src/Web/APIthen run the command:dotnet run.
- For data migration navigate to
src/Web/APIthen run the commands:dotnet ef migrations add <migration name here>dotnet ef database update- Note:
- The MS SQL Server should be running.
- The connection string in
src/Web/API/appsettings.jsonshould be valid. - For fresh migrations, delete the
Migrationsfolder insrc/Web/API. - For fresh database updates, nuke the database using SQL above.
The frontend application is build using React Nextjs.
- To run it navigate to
src/Web/ClientAppAPIthen run the command:npm dev- Note:
- Run command
npm installto install dependencies.
- Run command
USE [master]
GO
ALTER DATABASE [ByteShare] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]
GO
DROP DATABASE [ByteShare]
GO