A web application for connecting students based on shared interests, clubs, and languages, helping them branch out and build meaningful connections.
- Student information collection form
- Directory with advanced filtering capabilities
- Filter by faculty, interests, clubs, and languages spoken
- Name validation against filtered results
- Find students in the same faculty
-- Students Table
students (
id SERIAL PRIMARY KEY,
name TEXT,
year INT,
faculty TEXT
)
-- Interests
interests (id SERIAL PRIMARY KEY, name TEXT)
student_interests (student_id INT, interest_id INT)
-- Clubs
clubs (id SERIAL PRIMARY KEY, name TEXT)
student_clubs (student_id INT, club_id INT)
-- Languages
languages (id SERIAL PRIMARY KEY, name TEXT)
student_languages (student_id INT, language_id INT)-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install dependencies:
pip install -r requirements.txt -
Set up Google OAuth credentials:
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Navigate to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Select "Web application" as the application type
- Add authorized redirect URIs:
http://localhost:8080/authorize - Copy the Client ID and Client Secret
- Create a
.envfile in the project root with the following content:FLASK_APP=app.py FLASK_ENV=development SECRET_KEY=your-secret-key-goes-here GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret
-
Initialize the database:
python app.pyThen visit http://localhost:8080/recreate-db in your browser
-
Run the application:
python app.py -
Access the application at http://localhost:8080
- Submit student information through the form
- Navigate to the directory to view all students
- Use filters to find specific students
- Use the prompt "Find someone in the same faculty as you" by entering your name
- Validate names against the filtered results