Website: https://tutorspace.joinme.us/ (Not Maintained any more)
Promotion Page: https://www.tutorspace.info (Not Maintained any more)
Instagram: https://www.instagram.com/tutorspaceusc/
- Login Page
- Sign Up Page
- Home Page (Student)
- Home Page (Tutor)
- Search Page
- Create New Posts
Email: [email protected]
Password: password
Email: [email protected]
Password: password
Since these two sample accounts used fake emails, you would not be able to test any email related funcitonalities in our platform (subscribing, getting notifications, verification code, etc). You would need to register on our platform using your own email.
- NEVER push directly to the MASTER branch. Create your own branches and make pull requests to DEVELOP branch.
- Pull from DEVELOP branch regularly to make sure you get the most updated code. If there’s a merge conflict you don’t know how to solve, please let other developers know and we can figure it out together.
- We are using the Agile methodology, so it would be best if all our developers can follow the following rules:
- Our sprint cycle is ONE WEEK. Everyone’s tasks are listed in Trello. Remember to update the tasks before the end each sprint cycle by adding description to the tasks. Remember not to move the tasks to a different list, since we will do it together in our daily meeting. (The meeting time has yet to be decided.)
- Please always notify others about 1) What features/tasks have you accomplished last 1 - 3 days and 2) What features/tasks do you plan to work on next 1 - 3 days.
Please update these every 1 - 3 days in our slack room.
- Try adding comment to your code as much as possible
- Avoid Repetitive Code (DRY)
- If you see any bugs in our project or you have any concerns about the existing functionalities( no matter it’s frontend or backend), please report it directly in the corresponding slack channel or take a note of it and bring it up in our next weekly meeting.
- If there is anything you did not finish yet or you want to work on later in the future, please put some comments around them with a format of
TODO: xxxxxx
- Important commands to run our project:
- Install Laravel on your local computer.
- First check your
.env
file exists in the root directory of the project, and the credentials inside it can either connect to your local database or thejoinmeus_tutorspace_db
database. - Run
php artisan serve
andphp artisan queue:work
to start running the project. By default, you should be able to see the project by enteringlocalhost:8000
in your browser if the port 8000 is not occupied. - Make sure you already installed
csv
,mysql.connector
, andload_dotenv
python packages on your computer. (To test this, simply go topython_web_scraping
folder and runpython main.py
to see whether it reports any error. If everything works, make sure you go back to the project's root folder) - Run
npm install
to install all required packages - Run
npm run watch
to compile all js/css files (very useful for our FrontEnd developers) - Make sure you have
python-dotenv
package installed. If not, runpip install python-dotenv
. - Run
php artisan migrate:refresh --seed
to refresh & seed the database
- Debug at
localhost:8000/telescope
, where you can access the exact queries you executed and their runtime, cache, queues, scheduled tasks, .etc - Runtime is of our TOP priority. Try to optimize runtime using techniques like CACHE, QUEUES, EAGER LOADING, and more beyond.
- Keep code STRUCTURED
- Please restructure/optimize existing code wherever you see a potential to improve. (Just make sure you fully tested it after you modified the code to guarantee it really works. If you know some part of the program can be improved/optimized but dont want to modify it right away, please leave a "todo" comment near it so that we can modify it sometime in the future)
- Most Useful Sections in Laravel's Official Documentation: (PLEASE READ ALL THE ONES MARKED WITH * FIRST, AS THEY ARE THE MOST IMPORTANT ONES!)
- Architecture Concepts:
- Facades
- The Basics
- Routing (*)
- Middleware (*)
- CSRF Protection
- Controllers (*)
- Requests (*)
- Responses
- Views
- Session (*)
- Validation (*)
- Digging Deeper
- Cache (*)
- Collections
- Events
- Helpers (*)
- Notifications
- Queues
- Task Scheduling
- Database
- Getting Started
- Query Builder (*)
- Migrations (*)
- Seeding
- Eloquent ORM
- Getting Started
- Relationships (*)
- Collections (*)
- Mutators (*)
- Architecture Concepts:
- Use BEM Naming Conventions
- Try to extract all the shared common components out of a page and build blade & css files unique to those components.
- Always plan out the page layout before writing any code. This will be helpful for responsive layout.
- Create variables in
resources/sass
if a value will be used in many places. - Do not use CDN of third-party libraries. Instead, use npm to install those packages and then include the js files in
resources/js/app.js
usingrequire
statements (CommonJS syntax) - Write all js files in
resources/js
folder, and add those files intowebpack.mix.js
. Then, runnpm run watch
ornpm run dev
to compile the js files into the public folder. Finally, include the compiled js files into theapp.blade.php
if it will be shared among many files - Since our platform is quite large and all the pages share one single large css file, please pay special attention not to conflict with any already existing css classes by wrapping a page's main styles with a main class and defind all the styles under that main class.
- Since our users can be guest users, student users, and tutor users, they often share same or similar components on the same page. Therefore, please first plan out which common parts they share and extract them out when building the css files.
- Use
class
instead ofid
wherever possible for both CSS and JS files. - Use jQuery instead of vanilla JS
- Important Resources: