GithubHelp home page GithubHelp logo

touutae-lab / fastgraduation-dockercompose Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 2.92 MB

This is DockerCompose file for Easy setup for Fast Graduation Service

License: MIT License

Shell 100.00%
docker docker-compose

fastgraduation-dockercompose's Introduction

Fast Graduation: the Docker Compose repository

This is a Docker Compose file as a part of the Fast Graduation for CS CMU project.

Setup

You need to install Docker before use Instruction

  1. We use Docker Desktop for our deployment. So make sure to have it installed in advanced.

  2. Clone the repository.

git clone --recursive "https://github.com/Touutae-lab/FastGraduation-DockerCompose.git"

Usage

To start all the services defined in docker-compose.yml, run this command on your terminal.

docker compose up -d

If everything is fine, there will be a new directory -- data-volume -- after starting the docker compose services. Otherwise, you may need to check the permissions for the directory where docker-compose.yml is located.

Configuration

Most of the configurations (e.g. MySQL Root password, etc.) are defined in docker-compose.yml However, some specific settings depend on their platform. Our web server, for example, was developed using Next.js.

Everything should work fine then you should have data-volume directories

MySQL

Databases and settings will be generated automatically after the first run of the Docker container, stored in data-volume. You can duplicate such the directory to create a backup. If you remove data-volume, the container will generate a new another initial data-volume as if it be running for the first time.

You can also apply your SQL files (files ending with .sql) for initialization. Just place SQL files in initdb and the container will read and run the commands in those files automatically on the first run of the container.

Default Ports

You can modify ports in docker-compose.yml.

fastgraduation-dockercompose's People

Contributors

dward2nd avatar nickp-real avatar ph0pz avatar touutae-lab avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

ph0pz holy-wter

fastgraduation-dockercompose's Issues

Redesign Database Schema

Since our schema has not been optimal for real usage yet, then we need some improvement.

  • Prerequisite course table(s) must be interchangeable with the main course table―i.e. you can find prerequisites of a course, and you can also find courses that have a particular course as their prerequisite.
  • Add default timeline table(s), in case there is a need for that in the recommendation system.
  • Add suggestion table(s), a table that store the suggestion result for students made by both the system and students. Note that it must also specify whether a particular record is a draft.
  • Remove the faculty table, as it is unnecessary for the analysis.
  • According to the new UI design, each program plan has categories for courses within the plan. So add another table that groups courses within a plan into category.
    Note: for categories themselves―not related to courses―they may need a separate relation.
  • Make a cleaner better ER diagram (contribute on this link)

For additional schema issues, please reply.

Import course information to the database

As @nickp-real collected the course data, it is essential to have that one in our database as well. The task is simple; use any technique you like to read the text file and import them into the database.

If that were me, I would use Python for such a purpose.

  1. Create a separate branch.
  2. Fresh start the docker-compose with docker compose up -d.
  3. Determine whether the database fastgrad exists. If not, stop the compose using docker compose down and remove directory data-volume and start again.
  4. Write a Python program that read from text files and insert into course, prerequisite and prerequisite_group.
  5. After you finish, export the database file with the name fastgrad-filled-course.sql.
  6. Make a pull request.

Further reading: https://www.w3schools.com/python/python_mysql_getstarted.asp

image

Merge and stashed all minor/major task

  • The main branches must be merged to current version.
  • All required environment must be resolved in order to continue work.
  • State the next problem and task.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.