Git Product home page Git Product logo

practica2023's Introduction

Shop Readme

Welcome to the Practica 2023 Shop! This application showcases an extensive range of features to provide users with a seamless and enjoyable experience.

Admin privileges

If you want to have admin privileges sign in with the following account:

Email: [email protected]
Password: admin

Getting Started

To run the Practica 2023 Shop on your local machine, follow these steps:

  1. Clone this repository.
  2. Set up the necessary environment variables for authentication and other configurations.
  3. Setting up the server environment variables will be done in shop-backend/Stagiu/appsettings.json
  4. Set up a database connection in appsettings.json which uses the following format: Server={your_server};Database={database};Trusted_Connection=True;TrustServerCertificate=True. Set up BaseURL and Audience to the same URL value (the client URL) in appsettings.json
  5. In shop-client/src/axios.config.ts set baseURL to Server URL
  6. Install NPM dependencies in shop-client by navigating to it, opening a terminal, and writing npm i.
  7. Start the server from your IDE (Microsoft Visual Studio) and launch the application (in terminal or IDE terminal with npm run dev).

Showcase

Features

Below is a detailed description of the various functionalities and technologies implemented in this project.

Product Filtering

The application allows users to filter products based on query strings, enabling them to find the products they are interested in quickly.

Authentication

  • JWT Tokens: The app uses JSON Web Tokens (JWT) for user authentication, ensuring secure communication between the client and server.
  • Refresh Tokens: To enhance security and improve the user experience, refresh tokens are used to obtain new access tokens without requiring the user to re-enter their credentials.

Silent Authentication

Silent authentication is implemented to provide a smooth sign-in experience for users. It allows automatic authentication without prompting the user to enter their credentials repeatedly.

Admin Dashboard

The admin dashboard provides powerful CRUD (Create, Read, Update, Delete) functionality for managing products and categories efficiently.

Role-based Authorization

To control access and permissions, role-based authorization is implemented, ensuring that different user roles have appropriate access to specific parts of the application.

Protected Pages

Certain pages within the application are protected, requiring users to be authenticated and have the necessary roles to access them.

Optimized Updates

Updates to the application are optimized to reduce unnecessary data transmission. Only modified fields are updated, resulting in better performance and reduced bandwidth usage.

Cart Sync Functionality

To provide a consistent user experience, the app ensures that the user's cart is synchronized upon signing in, allowing them to seamlessly continue shopping.

Styling with Tailwind CSS

The user interface is skillfully styled using Tailwind CSS, providing a refreshing and visually appealing look.

Technologies Used

  • Frontend: TypeScript, React.js, HTML5, Tailwind CSS, Axios, Radix UI, React Router
  • Backend: ASP.NET CORE, WEB API, Dapper
  • Authentication: JSON Web Tokens (JWT), Refresh Tokens

Contributing

If you are interested in contributing to the Practica 2023 Shop, you can submit pull requests or raise issues in the repository. Your contributions are highly appreciated!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.