Welcome to the GitHub repository of Tabula, an innovative Learning Management System (LMS) designed for teachers, students, and administrators. Tabula facilitates efficient classroom management by letting AI do the administrative tasks so teachers can spend more time teaching and students can spend more time learning.
- For Teachers: Manage courses, assignments, and grades.
- For Students: Enroll in courses, submit assignments, and monitor progress.
- For Administrators: Oversee user accounts, manage courses, and configure system settings.
- Course Management:
- Create, edit, and delete courses.
- Add and remove students from courses.
- Upload and organize course materials.
- Assignment Tracking:
- Create and distribute assignments.
- Collect and grade student submissions.
- Provide feedback to students.
- Gradebook:
- Easily input and manage grades for assignments.
- Generate comprehensive reports for administrators.
- User-friendly Interface:
- Intuitive dashboard for quick access to essential features.
- Responsive design for seamless use on various devices.
- Security:
- Secure user authentication and authorization.
- Data encryption for sensitive information.
- Next.JS - The React framework for production.
- React - A JavaScript library for building user interfaces.
- Prisma - Next-generation ORM for Node.js and TypeScript.
- PostgreSQL - The world's most advanced open-source relational database.
- Node.js (v18)
- pnpm
NOTE: These instructions assume you're using
pnpm
, but use your package manager of choice.
- Clone the repository:
git clone https://github.com/sdodonnell/Tabula.git
- Install packages using pnpm:
pnpm install
- Set up your
.env
file with the required environment variables (actual variable provided by administrator):DATABASE_URL="postgresql://username:password@localhost:5432/tabula"
- (optional) Add the following line to your
hosts
file:127.0.0.1 dev.tabulalms.com:3000
To start the development server:
pnpm run dev:local
The application will be accessible at http://localhost:3000
.
Tabula uses Jest and React Testing Library for unit testing.
- Jest (v26 or higher)
- React Testing Library
Execute the tests with:
pnpm test
This command will run all tests and generate a coverage report.
Sam O'Donnell - [email protected]
Project Link: https://github.com/sdodonnell/Tabula