Giter Site home page Giter Site logo

tobiloba7 / studymate Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 106 KB

StudyMate is a platform that will allow students to seamlessly organise their study routines, set study goals, and track their study and (academic) progress.

Python 20.06% CSS 44.40% HTML 35.53%

studymate's Introduction

StudyMate

Overview

StudyMate is a platform designed to assist students in efficiently organizing their study routines, setting study goals, and monitoring their academic progress. This Flask application incorporates user authentication, allowing users to register, log in, and manage their study items. Users can view their completed study items, add new ones, edit existing ones, mark them as done, and delete them.

The application utilizes Flask for web development, Flask-SQLAlchemy for database management, Flask-Login for user authentication, and Werkzeug for password hashing.

Schema

The application has three tables in the database study_items.db:

User Table

Table Name: User

  • id Integer, Primary Key
  • username: Unique, Not Null
  • email: Unique, Not Null
  • password: Not Null (hashed password)
  • tasks: Relationship with Task Table (One-to-Many)

Task Table

Table Name: Task

  • id Integer, Primary Key
  • task Not Null
  • user_id: Integer, Foreign Key referencing User Table
  • tag_id: Relationship with Tag Table (Many-to-one)

Category Table

Table Name: Tag

  • id Integer, Primary Key
  • name Not Null

The tables uses a system where each user (from the User table) can have multiple tasks associated with them (in the Task table) and multiple tasks to one category(in the Tag table).

Key Features

  1. User Registration and Authentication: Users can register for an account and securely log in to access their study items.
  2. Study Item Management: Users can view, add, edit, mark as completed, and delete study items.
  3. Categorization: Study items can be categorized by subject for easy organization.
  4. Filtering: Users can filter their views based on study item categories.
  5. Progress Tracking: Users have an overview of completed study goals, providing insight into their academic achievements.
  6. Paging View: The initial 5 study items are displayed on the study item page, with the remaining items shown in next pages format for improved user experience.

Setup and Local Deployment

Starter Code

The Studymate app uses Flask, SQLAlchemy and werkzeug.security

  • The application logic is in app.py
  • The code for managing the database is in the /instance folder.
  • The html files are in /templates folder
  • The stylesheets are in /static folder
  • The requirements are in requirements.txt

Prerequisites

  • Python
  • pip (Python package installer)

Installation

  1. Clone the repository:

    git clone https://github.com/tobiloba7/StudyMate
    cd studymate
    
  2. Install the dependencies using pip:

    pip install -r requirements.txt

Running the application

  1. Run the Flask app: Start the application in debug mode by running: flask --debug run
  2. Open your browser and go to [http://localhost:5000]

These are the routes that app.py serves:

  • '/' is the index route, and it shows the study items
  • '/login' is the route to login to the app. When a user logins they are directed to the add item page
  • '/register' is the registration route for new users. Users are redirected to the login page after registering.
  • '/logout' is the route to log out

Task routes:

  • '/add' is the route to add study items
  • '/layout' is the route for the add study item
  • '/edit/int:id' is the route to edit tasks
  • '/check/int:id' is to check completed task
  • '/delete/int:id' is to remove tasks
  • '/tag/' to filter study items by tag
  • '/completed' to view all completed study items

Click through all of the pages to see how they currently behave. Rendered app- https://studymate.onrender.com

studymate's People

Contributors

itofunmi avatar tobiloba7 avatar

Watchers

 avatar

studymate's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.