A modern, feature-rich education platform built with Django and Tailwind CSS that enables seamless learning experiences through course creation, peer connections, study groups, and interactive forums.
Alpha One Labs is an education platform designed to facilitate both learning and teaching. The platform provides a comprehensive environment where educators can create and manage courses, while students can learn, collaborate, and engage with peers. With features like study groups, peer connections, and discussion forums, we aim to create a collaborative learning environment that goes beyond traditional online education.
- π Course enrollment and management
- π₯ Peer-to-peer connections and messaging
- π Study group creation and participation
- π¬ Interactive discussion forums
- π Progress tracking and analytics
- π Submit links and receive grades with feedback
- π Dark mode support
- π± Responsive design for all devices
- π Course creation and management
- π Student progress monitoring
- π Analytics dashboard
- π£ Marketing tools for course promotion
- π― Grade submitted links and provide feedback
- π° Payment integration with Stripe
- π§ Email marketing capabilities
- π Automated notifications
- π Secure authentication system
- π Internationalization support
- π Performance optimized
- π¦ Modular architecture
- β‘ Real-time updates
- π Search functionality
- π¨ Customizable UI
- π "Get a Grade" system with academic grading scale
- Python 3.10+
- Django 4.x
- Celery for async tasks
- Redis for caching
- PostgreSQL (production) / SQLite (development)
- Tailwind CSS
- Alpine.js
- Font Awesome icons
- JavaScript (Vanilla)
- Docker support
- Nginx
- Gunicorn
- SendGrid for emails
- Stripe for payments
- Python 3.10 or higher
- pip or poetry for package management
- Git
-
Clone the repository:
git clone https://github.com/alphaonelabs/alphaonelabs-education-website.git cd alphaonelabs-education-website
-
Set up virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
# Using pip pip install -r requirements.txt # Using poetry poetry install If you are having isues on windows try; poetry lock poetry install poetry self add poetry-plugin shell poetry shell poetry run pre-commit run --all-files
-
Set up environment variables:
cp .env.sample .env # Edit .env with your configuration
-
Run migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Create test data:
python manage.py create_test_data
-
Run the development server:
python manage.py runserver
-
Visit http://localhost:8000 in your browser.
-
Build the Docker image:
docker build -t education-website .
-
Run the Docker container:
docker run -d -p 8000:8000 education-website
-
Visit http://localhost:8000 in your browser.
- Email:
[email protected]
- Password:
adminpassword
Copy .env.sample
to .env
and configure the variables.
- Follow PEP 8 guidelines for Python code.
- Use Black for code formatting.
- Use isort for import sorting.
- Follow Django's coding style guide.
- Use ESLint for JavaScript code.
- Create a new branch for each feature/bugfix.
- Follow conventional commits for commit messages.
- Submit pull requests for review.
- Ensure all tests pass before merging.
-
Write unit tests for new features.
-
Run tests before committing:
python manage.py test
We use pre-commit hooks to ensure code quality and automatically format code:
# Install pre-commit
pip install pre-commit
# Install the git hooks
pre-commit install
# Automatically fix formatting issues
poetry run pre-commit run --hook-stage commit
# Run all checks on all files
poetry run pre-commit run --all-files
See PRE-COMMIT-README.md for detailed information about our pre-commit workflow and configuration.
- Document all new features and API endpoints
- Update README.md when adding major features
- Use docstrings for Python functions and classes
- Comment complex logic
We welcome contributions! Please see our Contributing Guidelines for details on how to submit pull requests, report issues, and contribute to the project.
If you encounter any issues or need support, please:
- Search existing Issues
- Create a new issue if your problem persists
- Join us on Slack https://join.slack.com/t/alphaonelabs/shared_invite/zt-7dvtocfr-1dYWOL0XZwEEPUeWXxrB1A
- Thanks to all contributors who have helped shape this project
- Built with β€οΈ by the Alpha One Labs team