SkillSpring is a comprehensive full-stack platform designed for online skill development and learning. It enables instructors to create courses and manage students while providing students with the ability to browse, enroll, and track progress in courses.
- Responsive Design: Works seamlessly across devices, providing a great user experience on both mobile and desktop.
- User Roles: Distinct functionalities for:
- Students: Browse, enroll in, and track courses.
- Instructors: Create, update, and manage courses.
- Authentication: Secure login with JWT-based authentication.
- Media Management: Cloudinary integration for storing and managing media files.
- Payments: PayPal integration for processing course payments.
- Database: MongoDB for secure and scalable data storage.
- Backend: Node.js, Express.js, MongoDB, Mongoose
- Frontend: React.js, Vite, Tailwind CSS
- File Storage: Cloudinary
- Payment Gateway: PayPal
- Authentication: JWT (JSON Web Tokens)
-
Key Features:
- Handles authentication, data storage, and business logic.
- Integrates with Cloudinary for media and PayPal for payments.
-
Important Directories:
/config
: Configuration files for the environment, database, and third-party services./controllers
: Handles application logic (e.g., user actions, course creation)./models
: Defines database schemas for MongoDB./routes
: API endpoints for handling authentication, course management, and more.
-
Key Features:
- Built with React for a dynamic and responsive interface.
- Implements Context API for global state management.
-
Important Directories:
/components
: Reusable UI components./pages
: Pages representing various parts of the application (e.g., dashboard, course details)./context
: Context providers for managing app state./services
: API functions for interacting with the backend.
Ensure the following tools are installed on your system:
- Node.js (v14 or higher)
- npm or yarn
- MongoDB (running locally or on a cloud service)
-
Clone the Repository:
git clone https://github.com/grep-many/skillspring.git
-
Install Dependencies:
Navigate to the respective folders and install dependencies:
- Backend:
cd server npm install
- Frontend:
cd client npm install
- Backend:
You need to configure the environment variables in .env.local
files for both the server and client.
-
Backend Configuration (
server/.env.local
):PORT=5000 #<port number for backend server> CLIENT_URL=<frontend URL> MONGO_URI=<your MongoDB connection string> CLOUDINARY_CLOUD_NAME=<your Cloudinary cloud name> CLOUDINARY_API_KEY=<your Cloudinary API key> CLOUDINARY_API_SECRET=<your Cloudinary API secret> PAYPAL_CLIENT_ID=<your PayPal client ID> PAYPAL_SECRET_ID=<your PayPal secret ID> JWT_SECRET=<your JWT secret key>
-
Frontend Configuration (
client/.env.local
):VITE_BASEURL=<backend API URL>
-
Run the Backend:
cd server npm run dev
-
Run the Frontend:
cd client npm run dev
-
Access the application:
- Backend: http://localhost:5000
- Frontend: http://localhost:5173/skillspring
-
Build the client for production:
cd client npm run build
-
Configure the backend to serve the frontend and run in production mode.