Skip to content

Projeto Web para geração e consumo de grade de horários para cursos superiores [Curricula-based University Timetable Problem]

Notifications You must be signed in to change notification settings

psinalberth/timetable-front

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Timetable Front

Java CSS Shell

Timetable Front is a web-based application designed to solve the Curricula-based University Timetable Problem by generating and managing schedules for higher education courses. This project leverages modern backend technologies and design patterns to provide an efficient and scalable solution.


Features

  • Dynamic Timetable Management: Generate and optimize academic schedules based on predefined rules and constraints.
  • Report Generation: Integrated tools for creating detailed reports for professors, courses, and disciplines.
  • Modular Design: Implements a repository pattern for cleaner data access and management.
  • Backend and Frontend Integration: Developed with Java, CSS, and a shell script for configuring the environment.
  • User-Friendly Interface: Provides a responsive and intuitive web interface.

Project Structure

The project follows a modular structure with distinct components for data handling, reporting, and view-model management.

Key Directories

  • src/main/java/br/edu/ifma/csp/timetable/:

    • model: Defines the core entities such as Curso, MatrizCurricular, and DetalheDisciplina.
    • dao: Contains the Data Access Objects (DAOs) for managing database interactions, e.g., DisciplinaDao, DetalheDisciplinaDao.
    • repository: Implements interfaces for handling data operations, e.g., DetalhesDisciplina, Cursos.
    • viewmodel: Handles the business logic for views, including MatrizCurricularViewModel, ReportViewModel.
    • util: Provides utility classes like Report for rendering dynamic reports.
  • src/main/resources/scripts/:

    • Contains scripts such as configure-wildfly.sh for setting up the development environment with WildFly.

Sample Classes and Functionalities

Model Example

MatrizCurricular.java:

@Entity
@Table(name="MATRIZ_CURRICULAR")
public class MatrizCurricular extends Entidade {
    private Integer ano;
    private List<Periodo> periodos;
    // Getters and Setters
}

DAO Example

DetalheDisciplinaDao.java:

@Stateless
public class DetalheDisciplinaDao extends RepositoryDao<DetalheDisciplina> {
    public List<DetalheDisciplina> allByMatrizCurricular(MatrizCurricular matrizCurricular) {
        // Implementation
    }
}

ViewModel Example

ReportViewModel.java:

@NotifyChange({"colTiposRelatorio", "colProfessores", "colDisciplinas", "colCursos"})
@Init
public void init() {
    setColTiposRelatorio(tiposRelatorio.all());
    setColProfessores(professores.all());
}

Installation

  1. Clone the repository:

    git clone https://github.com/psinalberth/timetable-front.git
    cd timetable-front
  2. Configure the environment:

    ./src/main/resources/scripts/configure-wildfly.sh
  3. Build the project:

    mvn clean install
  4. Deploy and run the application:

    # Instructions for deployment

Usage

  • Developers: Extend the repository and DAO classes to modify or add new functionalities.
  • End Users: Access the web interface to generate timetables, manage courses, and create reports.

Contributing

Contributions are welcome! Please fork the repository, make your changes, and submit a pull request. Ensure your code is well-documented and adheres to the coding guidelines.


License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Projeto Web para geração e consumo de grade de horários para cursos superiores [Curricula-based University Timetable Problem]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages