The YOLO-LMS powers the Next-Gen Learning Management System, providing a scalable and modular API layer using Node.js, Express, and DynamoDB (via Dynamoose). Authentication and authorization are handled through Clerk.
git clone https://github.com/gclarence011/YOLO-LMS.git
cd YOLO-LMSCreate a .env file in the root of the project directory (or edit the .env.example file and rename it):
NODE_ENV=development
# Clerk info
CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
# Backend port
NEXT_PUBLIC_API_BASE_URL=http://server:8002
DYNAMODB_LOCAL_URL=http://dynamodb-local:8000
# AWS DynamoDB
AWS_ACCESS_KEY_ID=dummy
AWS_SECRET_ACCESS_KEY=dummy
AWS_REGION=us-west-2🔐 Replace values with your actual Clerk API keys. You can find them in the Clerk dashboard.
You will need to have AWS CLI for this. We need to make sure the AWS Credential matches the on in the .env file
aws configure
For Example:
WS Access Key ID [***************ummy: dummy
AWS Secret Access Key [****************ummy]: dummy
Default region name [us-west-2]: us-west-2
Default output format [None]: Ensure Docker is installed and running before using this command.
docker-compose upThis will:
- Run the client(frontend) on
http://localhost:3000 - Run the server(backend) on
http://server:8002 - Run the DynamoDB on
http://dynamodb-local:8000 - Run the DynamoDB Admin (web ui for DB) on
http:localhost:8001
Access the DB web ui at http:localhost:8001
Access the client at http:localhost:3000
Set your role at http:localhost:3000/admin
cd client
npm installCreate a .env.local file in the root of the clent directory:
NEXT_PUBLIC_API_BASE_URL=http://localhost:8002
NEXT_PUBLIC_LOCAL_URL=http://localhost:3000
CLERK_PUBLISHABLE_KEY=your-clerk-puplishable-key
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your-clerk-puplishable-key
CLERK_SECRET_KEY=your-clerk-secret-key🔐 Replace values with your actual Clerk API keys. You can find them in the Clerk dashboard.
npm run devThe client will run on http://localhost:3000
Access the client at http:localhost:3000
Set your role at http:localhost:3000/admin
cd ../server
npm installCreate a .env file in the root of the backend directory (or edit the .env.example file and rename it):
PORT=8002
NODE_ENV=development
DynamoDB_LOCAL_URL=http://localhost:3000
CLERK_PUBLISHABLE_KEY=your-clerk-puplishable-key
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your-clerk-puplishable-key
CLERK_SECRET_KEY=your-clerk-secret-key
AWS_ACCESS_KEY_ID=dummy
AWS_SECRET_ACCESS_KEY=dummy
AWS_REGION=us-west-2🔐 Replace values with your actual Clerk API keys. You can find them in the Clerk dashboard.
npm run devThe server will run on http://localhost:8002
This backend uses DynamoDB (via Dynamoose). To run DynamoDB locally:
Ensure Docker is installed and running before using this command.
cd deploymentdocker-compose upThis will:
- Pull the
amazon/dynamodb-localimage - Run it on port
8000 - Mount the local data volume at
./docker/dynamodb
Access the DB web ui at http:localhost:8001
- Node.js / Express – backend framework
- Dynamoose – DynamoDB modeling
- Clerk – Authentication & authorization
- Docker Compose – Local DB environment
Feel free to open an issue or submit a pull request. Contributions are welcome!