Skip to content

source-hub-org/NexusEd

Repository files navigation

NexusEd

NexusEd

NexusEd is an open-source project designed to revolutionize online technical education. Built with FastAPI for blazing speed and scalability, this platform leverages state-of-the-art AI APIs (like Gemini and OpenAI) to dynamically generate, structure, and deliver high-quality, up-to-date programming courses.

✨ Key Features

  • AI-Powered Content Generation: Automatically creates course materials, from outlines to in-depth lessons, using advanced AI.
  • Dynamic & Up-to-Date: Courses are always current with the latest trends and technologies in the programming world.
  • Scalable Architecture: Built on FastAPI, ensuring high performance and the ability to handle a growing user base.
  • Open Source: A community-driven project where anyone can contribute and help shape the future of online education.

🚀 Getting Started

This section will guide you on how to get a local copy up and running for development and testing purposes.

python3 --version

sudo apt install python3-pip

sudo apt install python3.12-venv

python3.12 -m venv .venv

source .venv/bin/activate

pip install -r requirements.txt

pip install alembic uvicorn

Development

Database Migration

To create a new database migration, use the following command:

alembic revision --autogenerate -m "Your migration message"

To apply the migrations to the database, use:

alembic upgrade head

Running the Application

To start the development server, run:

uvicorn app.main:app --reload --port 8008 --host 0.0.0.0

Running the Worker

The application uses Celery to handle background tasks, such as generating course roadmaps and lesson content. To start the worker, run the following command from the project root directory:

celery -A app.worker.celery_app.celery_app worker --loglevel=info

This command starts a worker process that will listen for and execute tasks from the message queue (RabbitMQ).

Triggering Tasks Manually

For development and testing, you might want to trigger tasks manually. You can do this from a Python shell or a script.

Example: Triggering create_roadmap_task

from app.worker.tasks.create_roadmap import create_roadmap_task

# Replace 123 with the actual course_id
create_roadmap_task.delay(course_id=123)

Example: Triggering create_lesson_content_task

from app.worker.tasks.create_lesson import create_lesson_content_task

# Replace 456 with the actual lesson_id
create_lesson_content_task.delay(lesson_id=456)

Code Formatting

To format the code, run the following script:

./format.sh

📚 Documentation

This project includes detailed documentation for its various components:

API Endpoints (docs/api)

Batch Workers (docs/batch)

Common Guides (docs/common)

🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Please refer to our contributing guidelines for more information. (Coming soon)

📄 License

This project is licensed under the MIT License.

About

NexusEd is an open-source project designed to revolutionize online technical education. Built with FastAPI for blazing speed and scalability, this platform leverages state-of-the-art AI APIs (like Gemini and OpenAI) to dynamically generate, structure, and deliver high-quality, up-to-date programming courses.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages