Body-Maraton is a web application developed using the MERN stack (MongoDB, Express, React, Node.js). This project aims to provide a robust platform for managing and viewing marathon and fitness-related event information.
- User Management: User registration, login, and session handling.
- AWS S3 Integration: For file upload and management.
- Dynamic User Interface: Using React and various supporting libraries.
- Internationalization: Support for multiple languages with i18next.
- Security: JWT authentication and password encryption.
- Node.js: JavaScript runtime environment for the server.
- Express: Web framework for Node.js.
- MongoDB: NoSQL database.
- Mongoose: ODM (Object Data Modeling) for MongoDB.
- JWT (jsonwebtoken): Implementation of JSON Web Tokens for authentication.
- Bcryptjs: Library for password encryption.
- AWS SDK: For integration with Amazon S3.
- Multer: Middleware for handling multipart/form-data files.
- Morgan: Middleware for HTTP request logging.
- Dotenv: Environment variable management.
- Cookie-parser: Parse cookies in requests.
- React: JavaScript library for building user interfaces.
- React Router DOM: Routing for React applications.
- Redux Toolkit: State management for the application.
- Axios: HTTP client for making requests.
- i18next: Internationalization and localization.
- React-i18next: Integration of i18next with React.
- Font Awesome: Vector icons.
- Sass: CSS preprocessor for more efficient styling.
- React Hot Toast: Quick notifications.
- React Select: Highly customizable select components.
- React Markdown: Render Markdown content.
- React Player: Multimedia content playback.
- React Country Flag: Display country flags.
Follow these steps to set up the project on your local machine:
-
Clone the repository:
git clone https://github.com/kimbali/kommon.git
-
Navigate to the project directory:
cd kommon
-
Install backend dependencies:
npm install
-
Install frontend dependencies:
npm install --prefix frontend
To start the development environment, use the following command:
npm run dev
This will concurrently start both the backend server and the React frontend.
To build the application for production, run:
npm run build
This will install all necessary dependencies and build the frontend.
- start: Starts the backend server.
- server: Starts the backend server with nodemon for development.
- client: Starts the React development server.
- dev: Starts both servers (backend and frontend) in development mode.
- data:import: Imports seed data to the database.
- data:destroy: Destroys the data in the database.
- build: Builds the project for production.
- generate-toc: Generates a table of contents for the README.md file.
This project is licensed under the MIT License. See the LICENSE file for details.