Welcome to CoinBounce, a full-stack MERN project that provides a platform for cryptocurrency enthusiasts to explore, share, and engage with the community.
- Introduction
- Project Overview
- Features
- Technologies Used
- Backend Details
- Frontend Details
- API Handling
- Custom Hooks
- Getting Started
- Contributing
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.
The project consists of two main parts: the backend and the frontend.
- Home Page
- Cryptocurrency Page
- Signup Page
- Login Page
- Blog
- Submit a Blog
- Edit & Delete a Blog (Authenticated Users Only)
- Middlewares
- Joi (Validation)
- Bcryptjs (Password Hashing)
- DTO (Data Transfer Object)
- JWT (Authentication)
- Cookie-parser (Secure Authentication)
- 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)
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.
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.
The project employs both external and internal APIs for data retrieval:
- NewsAPI (Home Page)
- CoinGecko API (Cryptocurrency Page)
- Functions for fetching responses based on requests
- Auto login token refresh function
useAutoLogin
: A custom hook for handling automatic login functionality by sending requests to the server to refresh the user's authentication token.
-
Install dependencies:
npm i
-
Start the backend server:
npm run dev
OR
npm start
-
Install dependencies:
npm i
-
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.
We welcome contributions to enhance CoinBounce. To contribute, please follow these steps:
-
Fork the repository.
-
Create a new branch for your feature or bug fix:
git checkout -b feature-name
-
Make your changes and commit them:
git commit -m 'Description of changes'
-
Push your changes to your forked repository:
git push origin feature-name
-
Create a Pull Request, providing a detailed description of your changes.
Explore, share, and engage with the community! 🚀 Happy coding!