Project Name: CUNYSphere
Team Name: CUNYCrafters
Dahyeon Park, Benjamin Zhang, Omar Abdullah, Amir Hamza
A summary of your project
In today’s vast digital landscape, students often face challenges in sourcing reliable academic resources and engaging with peers who share their educational pursuits. CUNYSphere is designed to address these challenges by serving as a comprehensive platform for students. Here's how it works:
CunySphere provides a two-fold service approach for students. Firstly, it offers a selection of vetted academic resources, assisting students in their studies. Secondly, it creates a dedicated space for students to interact, discuss, and collaborate on academic topics.
The driving force behind CUNYSphere is to address the existing gap in the market. Students often find themselves switching between platforms that are either off academic resources or community engagement. CUNYSphere aims to streamline the student experience by seamlessly integrating both aspects into a single platform.
CUNYSphere is tailored specifically to college students, particularly those within the CUNY system. However, it can also benefit high school students who are considering attending CUNY college in the future.
Are there similar applications and/or competitors available now? How does your idea differ? or why is there a need for a competitor?
While there are existing platforms like CourseHero and CollegeConfidential that cater to student needs, they tend to address only one aspect of the student experience. CourseHero primarily focuses on providing study materials, while CollegeConfidential emphasizes student discussions. CUNYSphere sets itself apart by integrating academic resources with a vibrant community, offering students a holistic experience. This unique combination makes CUNYSphere a necessary addition to the current market.
Roles:
- Access and download study materials, initiate or participate in discussions, create study groups, rate and review resources, see the latest news about CUNY, upload your resume for review.
- User management, such as adding or removing users and assigning roles, addressing major technical glitches, managing partnerships or integrations, overseeing the overall functioning of the platform.
As a student, I want to…
easily register and create a profile so that I can access study resources.
search and download relevant study materials so that I can prepare for my exams.
join or initiate discussions on topics I'm interested in so that I can understand concepts better.
rate and review resources so that others can benefit from my feedback and make informed choices
create or join study groups so that I can collaborate with peers.
As an administrator, I want to…
manage user accounts, assigning roles and permissions so that the platform runs smoothly.
handle technical issues and oversee updates so that the platform remains up-to-date and bug-free.
analyze user activity and platform performance so that necessary improvements can be implemented.
. ├── README.md ├── api │ ├── app.js │ ├── config │ │ └── config.json │ ├── controllers │ │ ├── index.js │ │ └── microPosts.js │ └── models │ ├── MicroPost.js │ └── index.js ├── client │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ ├── App.css │ ├── App.js │ ├── components │ │ ├── ErrorAlert.js │ │ ├── LoadingSpinner.js │ │ └── MicroPostCard.js │ ├── index.js │ └── pages │ ├── AboutUsPage.js │ ├── PostFormPage.js │ ├── PostsListPage.js │ └── ShowPostPage.js ├── package-lock.json └── package.json
Current version: 3.0.0 (Oct 2023)
Node.js v16 LTS is recommended
Backend API
- express.js (v4.18.2)
- sequelize.js (v6.33.0)
- PostgreSQL (v14 recommended)
Frontend React client
- Based on
create-react-app
- pre-configured to work with the api
- Bootstrap (v5)
- added to
/client/public/index.html
(optional can be removed)
- added to
- React Router (v6)
- Check if you have PostgreSQL installed
- ✅ versions 10-14 should work
- 🚫 version 15 has not been tested
- If you need to install PostgreSQL see the installing PostgreSQL guides
The project-starter template expects the following for local development:
- PostgreSQL User/Role
- name:
ctp_user
- password:
ctp_pass
- name:
- PostgreSQL Database
- name:
ctp_appdb_development
- name:
If you are on Windows and installed pgAdmin follow our pgAdmin guide to create a user in PostgreSQL named ctp_user
with the password ctp_pass
and a database named ctp_appdb_development
.
Create a user in PostgreSQL named ctp_user
with the password ctp_pass
:
This only needs to be done one time on your machine You can create additional users if you want to.
createuser -P -s -e ctp_user
Create a separate db for this project:
createdb -h localhost -U ctp_user ctp_appdb_development
You will create a DB for each project you start based on this repo. For other projects change
ctp_appdb_development
to the new apps database name.
For local development you will need two terminals open, one for the api-backend and another for the react-client.
Clone this app, then:
# api-backend terminal 1
cp .env.example .env
npm install
npm run dev
# react-client terminal 2
cd client
npm install
npm start
- api-backend will launch at: http://localhost:8080
- react-client will launch at: http://localhost:3000
In production you will only deploy a single app. The react client will build into static files that will be served from the backend.