StudiTrade is an innovative platform designed to empower students by enabling them to buy and sell courses and revision notes seamlessly. Inspired by platforms like StuDocu, StudiTrade integrates a website, a mobile application, and an embedded system to facilitate both digital and physical transactions of educational materials.
- Features
- Video Tutorials
- Web Component
- Backend Initialization
- Frontend Initialization
- Using the Website
- Mobile Application
- Initialization
- Using the Application
- Embedded System
- System Components
- Initialization
- Using the Embedded System
- Contact
- Authors
0
- Buy and Sell Courses: Seamlessly purchase or list courses and revision notes.
- Multi-Platform Support: Access StudiTrade via web, mobile, and physical embedded systems.
- Secure Transactions: Integrated with Stripe for secure payment processing.
- User-Friendly Interface: Intuitive design for easy navigation and usage.
- Favorites and Personal Notes: Save your preferred documents and manage your uploads efficiently.
A comprehensive set of videos is available to guide you through using the different interfaces of StudiTrade. Access them here:
Built with Vue.js for the frontend and Spring Boot for the backend, the web component of StudiTrade offers a robust and scalable platform for managing educational content.
- Open Backend Folder:
- Open the Backend folder in Visual Studio Code or IntelliJ IDEA.
- Configure Secrets:
- The backend requires sensitive credentials:
- Google Cloud Storage Credentials:
lofty-optics-427311-d6-e7d240f5d04c.json - Application Properties:
application.propertiescontaining over 50 credentials for email management, Spring Security, database connections, etc.
- Google Cloud Storage Credentials:
- Note: Due to security reasons, these files are not uploaded to GitHub. If you are an employer or educator and need access, please contact minehamza97@gmail.com to receive the necessary credentials.
- Run Backend:
- Navigate to the ProjetTbApplication file.
- Click on the Run button or type: mvn spring-boot:run in the terminal.
- Enable Payments:
- The payment system relies on webhooks to update payment statuses and send confirmation emails.
- To simulate webhooks locally, use the Stripe CLI.
- Update the
application.propertiesfile with your own Stripe credentials:stripe.secretKeystripe.webhookKey
Note: The backend setup is complex. If you encounter issues, contact me at minehamza97@gmail.com for assistance.
- Open Frontend Folder:
- Open the Frontend folder in Visual Studio Code or IntelliJ IDEA.
- Install Dependencies:
- In the terminal, run:
npm install npm run dev
- Access the Website:
- Open your browser and navigate to http://localhost:3000/.
- Login:
- Log in with a valid email address capable of receiving emails (preferably a Google-registered email for backend permissions).
- You can create an account manually or use your Google account to log in.
- Homepage:
- Browse available documents for sale.
- Click on a document and then the Buy button to initiate a purchase.
- Payment:
- You will be redirected to a Stripe payment page to complete your purchase.
- Post-Purchase:
- Digital Documents: Receive a confirmation email with links to access your purchased documents.
- Physical Documents: Receive a confirmation email with a confidential code (composed of A, B, and C) to retrieve the document using the embedded system.
- Selling Documents:
- Navigate to the Sell Files page to upload and list your documents for sale.
- Personal Management:
- Personal Notes: View the documents you have posted.
- My Favorites: Access your favorite documents by clicking the heart icon.
- Purchased Files: View all documents you have purchased.
- Navigation:
- Click the StudiTrade logo to return to the homepage at any time.
Developed in Kotlin, the mobile application ensures that StudiTrade is accessible on the go.
- Open Project:
- Open the StudiTradeV2 folder in Android Studio.
- Launch Application:
- Click the Run button to build and launch the application on your emulator or connected device.
- Login Page:
- Similar to the website, you can create an account or log in using the same credentials registered on the website.
- Homepage:
- Browse and view all available documents for sale.
- Purchasing Documents:
- Tap the Buy button to purchase a document. You will be redirected to the website to complete the transaction securely.
- Uploading Documents:
- Access the upload page to select documents from your phone and publish them to the database.
- Profile and Settings:
- Access your profile by tapping the profile icon at the top right.
- View and edit your account information.
- Navigate to the settings page for additional configurations.
StudiTrade's embedded system ensures the secure physical delivery of non-digital documents through an integrated locker mechanism.
- ESP32: Main controller for the embedded system.
- TEMT6000 Light Sensor: Detects the presence of a document in the locker.
- WS2812B LED: Provides status indications (e.g., green for unlocked).
- OLED Display: Displays information and prompts to the user.
- Access Installation Images:
- Refer to the installation images available in the GitHub repository to assemble the hardware components.
- Clone Repository:
- Clone the
Arduino/sketch_dec26adirectory from the GitHub repository into the Arduino IDE.
git clone https://github.com/Marabii/ProjectTB/Arduino/sketch_dec26a- Install Libraries:
- Open the Arduino Library Manager and install the following libraries:
- Adafruit GFX
- Adafruit SSD1306
- Adafruit NeoPixel
- WiFi (built-in on ESP32)
- HTTPClient (built-in on ESP32)
- Upload Code:
- Upload the cloned code to the ESP32 using the Arduino IDE.
- Seller Workflow:
- Deposit Document: The seller places the document into a secure locker.
- Detection: The TEMT6000 light sensor detects the presence of the document.
- Buyer Workflow:
- Payment: The buyer completes the purchase on the website and receives an authentication code via email.
- Retrieve Document:
- Enter the authentication code (composed of A, B, and C) using the OLED screen buttons.
- Upon successful entry, the locker unlocks, and the WS2812B LED turns green.
- Document Retrieval: After removing the document, the light sensor detects the absence, signaling the completion of the transaction.
For any issues or inquiries regarding the setup and usage of StudiTrade, please contact:
- Email: minehamza97@gmail.com
This README was last updated on January 11, 2025.











