OSU-MC / MyClassroom

đź“‹Open-Source Classroom Polling Application
https://osu-mc.github.io
GNU General Public License v3.0
5 stars 2 forks source link

Monorepo Workspaces #216

Closed nilsstreedain closed 5 months ago

nilsstreedain commented 6 months ago

Monorepo Workspaces

Description

This PR reworks the configuration process for the project. Changes include creating a overall npm project with separate workspaces for the client/server, the addition of automatic MySQL user setup in the installation process, consolidation of npm scripts into a single config.sh script, and updates to environment setup instructions. The updates are designed to improve the clarity and efficiency of the setup process for both new and existing developers. These changes ensure that environment variables and npm scripts are correctly aligned with the respective development, testing, and production environments.

Additional Information

Included is the introduction of a config.sh script, which automates the configuration and setup tasks that were previously manual. This script is intended to reduce setup errors and standardize the initial configuration process.

Checklist:

Before you submit your Pull Request, please make sure you have completed the following tasks:

Durbin-Elijah commented 6 months ago

Alright, I did a quick test run on a fresh install before going to bed. The config took a long time as expected but once it was done the app ran successfully.

For me, I could not get past login or signup, as clicking any buttons gave 404s image

All I did was do the fresh install, npm run config, and npm start

Could have to do with having the databases already setup with the same names. Assuming no one else is having any issues I can do another test run with proper config when I have time.

nilsstreedain commented 6 months ago

Alright, I did a quick test run on a fresh install before going to bed.

The config took a long time as expected but once it was done the app ran successfully.

For me, I could not get past login or signup, as clicking any buttons gave 404s

image

All I did was do the fresh install, npm run config, and npm start

Could have to do with having the databases already setup with the same names. Assuming no one else is having any issues I can do another test run with proper config when I have time.

Thanks for taking a look, when you have a chance this week, we can also try comparing the installs from before/after on your machine to see if there is anything that is somehow different.

Justin-Fernbaugh commented 6 months ago

Just did a run setting a repo from scratch up this way. On the first run, I got an error that the migration/seeding phase couldn't connect to the DB via the users in .env. However, this might be related to trying to set a '' or empty password. After which in order to get the DB to connect to the backend it required defining the "Password_2" and _3 in .env although, perhaps this is intended functionality. After doing so everything worked as intended.

Also as a side note is it purposeful to remove all test/admin users from the database after first seeding? It might be useful to add at least one so that on each reset we don't necessarily have to create a new account.

nilsstreedain commented 5 months ago

Just did a run setting a repo from scratch up this way. On the first run, I got an error that the migration/seeding phase couldn't connect to the DB via the users in .env. However, this might be related to trying to set a '' or empty password. After which in order to get the DB to connect to the backend it required defining the "Password_2" and _3 in .env although, perhaps this is intended functionality. After doing so everything worked as intended.

Also as a side note is it purposeful to remove all test/admin users from the database after first seeding? It might be useful to add at least one so that on each reset we don't necessarily have to create a new account.

You're right, looks like it is currently setup to require those as well, I'll look into getting that updated. I've been thinking of adapting this a bit to be more extensible, what are your thoughts around basically just converting this to a docker deployment? It would simplify the changes here and the mysql docker image probably makes more sense to reply and manage in this way. I could probably get it setup in an afternoon. Also OSU Cloud Application Development is moving fully in that direction so would make sense more for future students.

nilsstreedain commented 5 months ago

Closed due to better versions of changes made in #230 and #232.