Giter Site home page Giter Site logo

coinbounce's Introduction

CoinBounce

Welcome to CoinBounce, a full-stack MERN project that provides a platform for cryptocurrency enthusiasts to explore, share, and engage with the community.

Table of Contents

Introduction

This project is a full-stack MERN application, featuring a backend and frontend. It offers both protected and unprotected routes, allowing users to explore cryptocurrencies, create accounts, and engage with the blog section.

Project Overview

The project consists of two main parts: the backend and the frontend.

Features

  • Home Page
  • Cryptocurrency Page
  • Signup Page
  • Login Page
  • Blog
  • Submit a Blog
  • Edit & Delete a Blog (Authenticated Users Only)

Technologies Used

Backend

  • Middlewares
  • Joi (Validation)
  • Bcryptjs (Password Hashing)
  • DTO (Data Transfer Object)
  • JWT (Authentication)
  • Cookie-parser (Secure Authentication)

Frontend

  • Props (Dynamic Content)
  • Modular CSS (Component-specific Styling)
  • react-router-dom (Routing)
  • useParams (Parent-to-Child Parameter Passing)
  • useNavigate (Navigation)
  • react-redux (State Management)
  • useSelector (Global State Access)
  • Formik (Form Validation)
  • Yup (Validation Rules)
  • Axios (API Calls)
  • CORS (Security Relaxation)
  • react-loader-spinner (Loading Spinner)

Backend Details

The backend of the project utilizes various technologies and tools, including middlewares, Joi for validation, Bcryptjs for password hashing, DTOs for data filtering, JWT for authorization, and cookie-parser for enhanced security.

Frontend Details

The frontend incorporates a range of technologies and techniques, such as props for dynamic content, modular CSS for component-specific styling, react-router-dom for route management, useParams for parameter passing, and react-redux for state management.

API Handling

The project employs both external and internal APIs for data retrieval:

External API

Internal API

  • Functions for fetching responses based on requests
  • Auto login token refresh function

Custom Hooks

  • useAutoLogin: A custom hook for handling automatic login functionality by sending requests to the server to refresh the user's authentication token.

Getting Started

Backend

  1. Install dependencies:

    npm i
    
  2. Start the backend server:

    npm run dev
    

    OR

    npm start
    

Frontend

  1. Install dependencies:

    npm i
    
  2. Start the frontend server:

    npm start
    

This section provides clear instructions on how to set up and run both the backend and frontend of CoinBounce project locally.

Contributing

We welcome contributions to enhance CoinBounce. To contribute, please follow these steps:

  1. Fork the repository.

  2. Create a new branch for your feature or bug fix:

    git checkout -b feature-name
    
  3. Make your changes and commit them:

    git commit -m 'Description of changes'
    
  4. Push your changes to your forked repository:

    git push origin feature-name
    
  5. Create a Pull Request, providing a detailed description of your changes.


Explore, share, and engage with the community! ๐Ÿš€ Happy coding!

coinbounce's People

Contributors

tayyab-004 avatar

Watchers

 avatar

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.