This repository is part of a software development project module assignment and is created for educational purposes only. It is a student project from Asia Pacific University (APU) and does not provide any warranty or guarantee, either expressed or implied, regarding the accuracy, completeness, or performance of the software. Use of this software is at your own risk, and the author is not responsible for any issues, damages, or losses that may arise from its use.
We are students from Asia Pacific University, and this is our Software Development Project titled SOYA. This project is part of our academic coursework and serves to demonstrate the skills and knowledge we have acquired in software development.
SOYA is a website designed to help users learn and master Python. It provides resources to learn Python, practice through exercises, and even compete with others. This project is developed using Django, a Python web framework, to deliver an interactive learning experience.
A test-script feature is implemented to automatically evaluate and check your answers, ensuring a smooth and efficient learning process.
How to tame your python
-
Create Virtual Environment
In the project root, create a virtual environment:python -m venv venv
-
Activate Virtual Environment
Activate the virtual environment:venv\Scripts\activate
-
Install Dependencies
Install the required dependencies from therequirements.txt
file:pip install -r requirements.txt
-
Restart Terminal
If necessary, restart the terminal after installing dependencies. -
Activate Virtual Environment Again (If Needed)
In case the virtual environment isn't active after restarting, activate it using one of the following commands:venvat
or
venv\Scripts\activate
-
Split Terminal
Open a split terminal to run the frontend and backend servers simultaneously. -
Start Frontend
In the first terminal, navigate to thefrontend
directory:cd frontend
Start the frontend development server:
npm run start
-
Start Backend
In the second terminal, navigate to thebackend
directory:cd backend
Start the Django server:
python manage.py runserver
-
Open the Browser
Once both servers are running, open any browser and navigate to:http://localhost:3000/
-
Open the serverside of SOYA open any browser and navigate to:
http://127.0.0.1:8000/
I'm CHONG KELVIN feel free to visit my GitHub Profile, where I host various open-source projects and contributions.
I'm LIM GEN JACK, you're welcome to explore my GitHub Profile, where I showcase a collection of open-source projects and notable contributions.
I am HEW YEE KIT. I have helped my team in building this project for our assignment with troubleshooting the codes and fixing any known bugs to make the program to run smoothly without any issues.
I am CHUA HUI WEN. To delve deeper into my portfolio and accomplishments, feel free to explore my GitHub Profile.
We would like to express our gratitude to the following open-source projects and libraries, which made significant contributions to the development of this project:
- asgiref: "Thank you asgiref for enabling asynchronous support in Django with ease."
- Django: "Grateful to Django for being the powerful backbone of our project."
- django-cors-headers: "Thank you django-cors-headers for handling cross-origin requests seamlessly."
- djangorestframework: "A big thanks to DRF for simplifying API development in Django."
- djangorestframework-simplejwt: "Appreciate the simplicity and security that djangorestframework-simplejwt brings to our token authentication."
- PyJWT: "Thank you PyJWT for making JWT token encoding and decoding a breeze."
- pytz: "Thanks to pytz for making timezone management effortless."
- sqlparse: "Grateful to sqlparse for handling SQL queries with precision."
- psycopg2-binary: "Thank you psycopg2-binary for smooth PostgreSQL integration in our project."
- python-dotenv: "Thank you python-dotenv for simplifying environment variable management."
- dj-rest-auth: "Grateful to dj-rest-auth for providing easy-to-use authentication endpoints."
- venvat: "Thank you venvat for making virtual environment activation easier than ever."
- @chakra-ui/react: "Thanks to Chakra UI for making frontend styling beautiful and simple."
- @emotion/react: "Thank you @emotion/react for injecting styles into our app with ease."
- @emotion/styled: "Grateful to @emotion/styled for making CSS-in-JS effortless."
- @monaco-editor/react: "Thanks to monaco-editor for providing a smooth code editing experience."
- @mui/lab: "Thank you @mui/lab for being the experimental playground of UI components."
- @mui/material: "Grateful to MUI for crafting elegant material design elements."
- @testing-library/jest-dom: "Thank you jest-dom for making DOM assertions intuitive."
- @testing-library/react: "Thanks to @testing-library/react for simplifying React component testing."
- @testing-library/user-event: "Grateful for user-event's seamless simulation of user interactions."
- axios: "Thank you axios for making API requests fast and efficient."
- framer-motion: "Thanks to framer-motion for adding smooth animations to our interface."
- ionicons: "Grateful to ionicons for providing sleek, modern icons."
- jwt-decode: "Thanks to jwt-decode for effortlessly parsing JWT tokens."
- monaco-themes: "Thank you monaco-themes for offering a palette of editor themes."
- react: "Grateful to React for being the foundation of our dynamic frontend."
- react-dom: "Thank you react-dom for rendering our React app efficiently."
- react-kofi-button: "Thanks to react-kofi-button for making donations accessible."
- react-router-dom: "Grateful to react-router-dom for smooth and declarative navigation."
- react-scripts: "Thank you react-scripts for managing our project setup with ease."
- react-select: "Thanks to react-select for making multi-select interfaces user-friendly."
- react-timer-hook: "Grateful to react-timer-hook for handling timers effortlessly."
- react-toastify: "Thank you react-toastify for delivering smooth and stylish notifications."
- resize-observer-polyfill: "Thanks to resize-observer-polyfill for observing size changes effortlessly."
- swiper: "Grateful to swiper for creating smooth and responsive slideshows."
- web-vitals: "Thank you web-vitals for helping us measure real user performance."
A special thanks to the Test-Script from Exercism for providing invaluable practice exercises and resources that helped enhance our Software Development Project.