Office Hours Communication System (API)
A communication tool for faculty to update students about office hour changes, displayed on LED screens outside offices.
Install these tools (if not already install), if preferred to run without docker go the step 1
Clone the repository.
git clone https://github.com/wilkensonio/reconnect-api.git
Navigate to the root folder
cd reconnect-api
In the root Folder
Create a .env file
Add the following in the .env file
PRODUCTION='false'
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=DB_name
DB_PORT=3306
ACCESS_TOKEN_EXPIRE_MINUTES=60
SECRET_KEY="ba5ee6d4b415233337ca8d4ffa294818"
ALGORITHM="HS256"
SMTP_SERVER="smtp.gmail.com"
SMTP_PORT=587
SENDER_EMAIL="a gmail account"
SENDER_PASSWORD="app_password"
IFTTT_KEY=b3OPNt03ywOfjA306sApW1
SMS_API_KEY="5a10bc468b1c23d5efe4d507f266379bd9ee051a1mgRMs36YerkBCzp3OXqPOSLm"
ROOT_PASSWORD="password"
ROOT_EMAIL="reconnect@southernct.edu"
Gmail password must be an app_password see Gmail documentation on how to get an app password get app_password
Install Dependencies
pip or pip3 install -r requirements.txt
If step 0 (docker install) was skip go the step 7
Run application
Run command : docker build -t fast .
This command will build and image using the dockerfile and the image will be tag with the name fast. In the terminal verified that the image was built successfully.,
Run command : docker run -p 8000:8000 fastapi-app
This command will run a docker container using the docker image build from above
Verify that the container is running in the terminal.
visit http://0.0.0.0:8000/docs
Visit the URL display on the terminal from the screenshot above, maybe different from the url above.
API docs: base_url:8000/docs
Navigate the root directory
Run command :
python3 uvicorn_config.py
or
python uvicorn_config.py
Signup up
From the web browser Documentation or from the faculty dashboard create an account
to use the faculty dashboard see this [setup]()
This an exmaple from the browser.
Sign in
Click on the Authorize button in the top right corner and provide an apiKey and click on authorize.
For username provite the SCSU email used to create the account.
For password provite the password entered whrn the account was created.
Once authorize the api can be used from the browser to make API calls and verified in the browser.
Meet the team behind the project!
Wilkenson Hilarion
Backend Developer and Full-Stack Contributor. Wilkenson built the backend, integrated IFTTT and setup CI/CD using GitHub Actions to automate the build and deployment process, conducted unit tests, and worked on the frontend, focusing on ensuring efficient communication and secure data handling.
Mitchell DeCesare
Frontend and Testing Specialist. Mitchell contributed to the faculty dashboard interface, and testing for the PI interface
Escobar J.
Pi Frontend Developer. Escobar developed the frontend interface for the Raspberry Pi, enabling clear communication and easy interaction for faculty and students. 3D print the casing to to house the PI
Special thanks to all contributors, supporters, and resources that helped make this project possible.