Skip to content
academico-sisPublic

About

Laravel & Filament-based school management platform for small and medium institutions

Topics

Resources

Contributing

Security policy

Stars

404 stars

Watchers

20 watching

Forks

Latest commit

Β 

History

1,489 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

About this project

All Contributors

Academico is an open-source, Laravel-based school management platform. Its main features include course management, enrolments management, resources scheduling, reports and stats. It is primarily targeted at small and medium-sized institutions who need a simple and affordable solution to manage their school and courses.

New 2026 version (Filament-based)

The first versions of this project were built with the awesome Backpack for Laravel framework. However, the application was entirely rewritten with Laravel Filament. No changes in the database structure has been made, so the Filament version should work as a drop-in replacement of the Backpack version, with similar features. You can still access the Backpack version in the pro branch (but a Backpack license is required and the packages have not been updated in a long time). I strongly recommend switching to the Filament version.

Disclaimer

The Filament version is still work in progress. Please use with caution, and report bugs if you encounter them. Contributions are welcome to make Academico a better, more usable software.

Contributors welcome! ✨

If you are using this applications and want to make some improvements for your own needs, or just willing to contribute to an open-source project, feel free to open an issue and make some suggestions. Contributions might go from writing code, to extending the documentation or the translations, or simply suggesting new features, UX improvements, and so on.

Thanks goes to these wonderful people for past or current version of this application (emoji key):

Thomas Debay
Thomas Debay

πŸ’» πŸ“– πŸ€” 🚧 ⚠️
Marc Marina Miravitlles
Marc Marina Miravitlles

πŸ’»
Damien Baudet
Damien Baudet

🚧 πŸ’»
Mubarak M Aminu
Mubarak M Aminu

πŸ’»
Ibrahim Abdullahi Aliyu
Ibrahim Abdullahi Aliyu

πŸ’»
AleksandarMitevski
AleksandarMitevski

⚠️ πŸ’»
Tano Rojas
Tano Rojas

⚠️ πŸ’»
Nikola Cirkovic
Nikola Cirkovic

πŸ› 🚧
quieneslatern
quieneslatern

🌍
Vitor Micillo
Vitor Micillo

🚧
Tatiana Goloviznina
Tatiana Goloviznina

πŸ’»
Rm Yakovenko
Rm Yakovenko

πŸ’»
Sam
Sam

πŸ’» πŸ“–
Rafael Farias
Rafael Farias

🌍
kta1kri
kta1kri

πŸ›‘οΈ

This project follows the all-contributors specification. Contributions of any kind welcome!

Getting started

This application runs in Docker using FrankenPHP (a modern PHP application server built on Caddy) and MariaDB.

Prerequisites

Nothing else is needed on your machine: PHP, Composer and Node run inside the containers.

Quick Start

  1. Clone the repository:
git clone https://github.com/academico-sis/academico.git
cd academico
  1. Start the containers and wait until the application is ready:
docker compose up -d --wait

The first run builds the image and installs the dependencies, which takes a few minutes. You can follow the progress with docker compose logs -f app.

This starts three services:

  • app β€” the FrankenPHP application server on http://localhost:8080
  • assets β€” builds the frontend assets, and rebuilds them when you edit resources/css or resources/js
  • mariadb β€” a MariaDB 11 database server on port 3306

On startup, the app container creates .env from .env.example if it does not exist, installs the Composer dependencies, generates the application key and runs the database migrations.

  1. Create the administrator account and the reference data:
docker compose exec app php artisan db:seed
  1. Open http://localhost:8080 in your browser and log in with academico@thomasdebay.com / secret.

Sample data

To explore the application with sample courses, students and enrollments, rebuild the database with the test seeder instead. This deletes all existing data.

docker compose exec app php artisan migrate:fresh --seeder=TestSeeder

Then log in with contact@thomasdebay.com / secret.

Changing the ports

If port 8080 or 3306 is already used on your machine, set other ports when starting the containers:

APP_PORT=8081 FORWARD_DB_PORT=3307 docker compose up -d --wait

You can also add these two variables to your .env file.

Running commands inside the container

All PHP and artisan commands should be run inside the app container:

# Run tests (they use an in-memory SQLite database, not the MariaDB data)
docker compose exec app php artisan test

# Run the linter
docker compose exec app ./vendor/bin/pint

# Run any artisan command
docker compose exec app php artisan <command>

How the development setup works

Your checkout is mounted into the containers, so code changes are visible immediately. The vendor and node_modules directories are kept in Docker volumes rather than on your machine, which avoids slow file sharing on macOS and Windows. These two directories therefore stay empty on the host.

After pulling changes that modify composer.lock or package-lock.json, restart the containers to install the new dependencies:

docker compose restart

Set AUTO_MIGRATE=false in the app service environment if you prefer to run the migrations yourself.

Stopping the environment

docker compose down          # Stop containers (data is preserved in Docker volumes)
docker compose down -v       # Stop containers and delete the database and dependency volumes

Production image

docker-compose.yml is meant for development. A production image is built from the same Dockerfile and published on Docker Hub as academicosis/academico.

Custom Login Page

The Docker setup supports an optional custom login page via a volume mount in docker-compose.yml:

- /path/to/custom-views/login.blade.php:/app/resources/views/filament/auth/login.blade.php

The custom login class (App\Filament\Auth\Login) detects at runtime whether this Blade file is present. When the file exists, it renders the custom layout; otherwise, the standard Filament login page is shown.

Contributing

See CONTRIBUTING.md for how to set up a development environment and submit changes. Notable changes are listed in CHANGELOG.md.

To report a security problem, follow the security policy instead of opening a public issue.

License

Academico is open-source software licensed under the MIT License.

About

Laravel & Filament-based school management platform for small and medium institutions

Topics

Resources

Contributing

Security policy

Stars

404 stars

Watchers

20 watching

Forks

Used by

Contributors

Languages